

def 				snake_case_(_UpperCamelCase					)							->     bool:



  """simple docstring"""






  _snake_case						=							set()
  # To detect a back edge, keep track of vertices currently in the recursion stack
  _snake_case						=							set()
  return any(
      node not in visited and depth_first_search(_UpperCamelCase			,	_UpperCamelCase			,	_UpperCamelCase			,	_UpperCamelCase					)
      for node in graph					)



def 				snake_case_(_UpperCamelCase			,	_UpperCamelCase			,	_UpperCamelCase			,	_UpperCamelCase					)							->     bool:



  """simple docstring"""






  visited.add(_UpperCamelCase					)
  rec_stk.add(_UpperCamelCase					)

  for node in graph[vertex]:
    if node not in visited:
      if depth_first_search(_UpperCamelCase			,	_UpperCamelCase			,	_UpperCamelCase			,	_UpperCamelCase					):
        return True
    elif node in rec_stk:
      return True

    # The node needs to be removed from recursion stack before function ends
  rec_stk.remove(_UpperCamelCase					)
  return False


if __name__ == "__main__":
 from doctest import testmod

 testmod()




from ..utils import DummyObject, requires_backends



class   lowercase_   (  metaclass=__lowercase					):
      UpperCamelCase_      :		Optional[int]										=    ["speech"]



      def __init__(      self				:    str      , *A__				:    List[str]      , **A__				:    Tuple		)   ->					Optional[Any]:
        requires_backends(self      , ['''speech''']		)



class   lowercase_   (  metaclass=__lowercase					):
      UpperCamelCase_      :		Optional[Any]										=    ["speech"]



      def __init__(      self				:    Dict      , *A__				:    int      , **A__				:    int		)   ->					Tuple:
        requires_backends(self      , ['''speech''']		)

