





__A       : Tuple						    = {0: [1, 2], 1: [0, 3], 2: [0], 3: [1], 4: [5, 6], 5: [4, 6], 6: [4, 5]}

__A       : List[str]						    = {0: [1, 2, 3], 1: [0, 3], 2: [0], 3: [0, 1], 4: [], 5: []}





def 							__lowerCAmelCase(					_SCREAMING_SNAKE_CASE       ,    _SCREAMING_SNAKE_CASE       ,    _SCREAMING_SNAKE_CASE							)       ->   list:




    """simple docstring"""




    _A    =       True
    _A    =       []

    for neighbour in graph[vert]:
        if not visited[neighbour]:
            connected_verts += dfs(_SCREAMING_SNAKE_CASE       ,    _SCREAMING_SNAKE_CASE       ,    _SCREAMING_SNAKE_CASE							)

    return [vert, *connected_verts]





def 							__lowerCAmelCase(					_SCREAMING_SNAKE_CASE							)       ->   list:




    """simple docstring"""




    _A    =       len(_SCREAMING_SNAKE_CASE							)
    _A    =       graph_size * [False]
    _A    =       []

    for i in range(_SCREAMING_SNAKE_CASE							):
        if not visited[i]:
            _A    =       dfs(_SCREAMING_SNAKE_CASE       ,    _SCREAMING_SNAKE_CASE       ,    _SCREAMING_SNAKE_CASE							)
            components_list.append(_SCREAMING_SNAKE_CASE							)

    return components_list


if __name__ == "__main__":
 import doctest

 doctest.testmod()












from ..utils import DummyObject, requires_backends


__A       : str						    = None





def 							__lowerCAmelCase(					*_SCREAMING_SNAKE_CASE       ,    **_SCREAMING_SNAKE_CASE							)       ->   Tuple:




    """simple docstring"""




    requires_backends(_SCREAMING_SNAKE_CASE       ,    ['sentencepiece', 'tokenizers']							)





