






SCREAMING_SNAKE_CASE__		:       Optional[int]   							=							{0: [1, 2], 1: [0, 3], 2: [0], 3: [1], 4: [5, 6], 5: [4, 6], 6: [4, 5]}

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





def    _lowerCamelCase	(	__lowerCamelCase   ,       __lowerCamelCase   ,       __lowerCamelCase					)   -> list:

     '''simple docstring'''
     UpperCAmelCase__			:     Tuple										= True
     UpperCAmelCase__			:     List[Any]										= []

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

     return [vert, *connected_verts]





def    _lowerCamelCase	(	__lowerCamelCase					)   -> list:

     '''simple docstring'''
     UpperCAmelCase__			:     Dict										= len(__lowerCamelCase					)
     UpperCAmelCase__			:     Tuple										= graph_size * [False]
     UpperCAmelCase__			:     Tuple										= []

     for i in range(__lowerCamelCase					):
          if not visited[i]:
               UpperCAmelCase__			:     List[Any]										= dfs(__lowerCamelCase   ,       __lowerCamelCase   ,       __lowerCamelCase					)
               components_list.append(__lowerCamelCase					)

     return components_list


if __name__ == "__main__":
      import doctest

      doctest.testmod()














from __future__ import annotations







class 							UpperCAmelCase_     :




     def __init__(							self  ,	_lowerCAmelCase		):
          UpperCAmelCase__			:     List[Any]										= value
          UpperCAmelCase__			:     Node | None										= None
          UpperCAmelCase__			:     Node | None										= None







class 							UpperCAmelCase_     :
     __lowerCamelCase										=     42




     def __init__(							self		):
          UpperCAmelCase__			:     Any										= 0




     def      __UpperCAmelCase     (							self  ,	_lowerCAmelCase  ,	_lowerCAmelCase		):
          if node is None:
               return

          if path_sum == self.target:
               self.paths += 1

          if node.left:
               self.depth_first_search(node.left  ,	path_sum + node.left.value		)
          if node.right:
               self.depth_first_search(node.right  ,	path_sum + node.right.value		)




     def      __UpperCAmelCase     (							self  ,	_lowerCAmelCase  ,	_lowerCAmelCase = None		):
          if node is None:
               return 0
          if target is not None:
               UpperCAmelCase__			:     List[Any]										= target

          self.depth_first_search(_lowerCAmelCase  ,	node.value		)
          self.path_sum(node.left		)
          self.path_sum(node.right		)

          return self.paths


if __name__ == "__main__":
      import doctest

      doctest.testmod()






