



"""simple docstring"""







def 				UpperCamelCase_    (    lowerCAmelCase__      :				str						)						->   List[str]:

  """simple docstring"""




  lowerCAmelCase_   :				List[Any]								= [False] * len(lowerCAmelCase__						)
  lowerCAmelCase_   :				str								= [-1] * len(lowerCAmelCase__						)

  def dfs(lowerCAmelCase__      :				Optional[int]    ,   lowerCAmelCase__      :				List[str]						):
    lowerCAmelCase_   :				Union[str, Any]								= True
    lowerCAmelCase_   :				List[str]								= c
    for u in graph[v]:
      if not visited[u]:
        dfs(lowerCAmelCase__    ,   1 - c						)

  for i in range(len(lowerCAmelCase__						)						):
    if not visited[i]:
      dfs(lowerCAmelCase__    ,   0						)

  for i in range(len(lowerCAmelCase__						)						):
    for j in graph[i]:
      if color[i] == color[j]:
        return False

  return True


# Adjacency list of graph
lowercase__		:				Optional[int]          =	{0: [1, 3], 1: [0, 2], 2: [1, 3], 3: [0, 2], 4: []}
print(check_bipartite_dfs(graph))












"""simple docstring"""





def 			UpperCAmelCase__							(  SCREAMING_SNAKE_CASE     :						int							,						SCREAMING_SNAKE_CASE     :						int			):







      '''simple docstring'''




      while b:
            lowerCAmelCase						,		lowerCAmelCase  						=       b, a % b
      return a


def 			UpperCAmelCase__							(  SCREAMING_SNAKE_CASE     :						int							,						SCREAMING_SNAKE_CASE     :						int			):







      '''simple docstring'''




      return a if b == 0 else euclidean_gcd_recursive(SCREAMING_SNAKE_CASE							,						a % b			)


def 			UpperCAmelCase__							(  ):







      '''simple docstring'''




      print(F'euclidean_gcd(3, 5) = {euclidean_gcd(3							,						5			)}'			)
      print(F'euclidean_gcd(5, 3) = {euclidean_gcd(5							,						3			)}'			)
      print(F'euclidean_gcd(1, 3) = {euclidean_gcd(1							,						3			)}'			)
      print(F'euclidean_gcd(3, 6) = {euclidean_gcd(3							,						6			)}'			)
      print(F'euclidean_gcd(6, 3) = {euclidean_gcd(6							,						3			)}'			)

      print(F'euclidean_gcd_recursive(3, 5) = {euclidean_gcd_recursive(3							,						5			)}'			)
      print(F'euclidean_gcd_recursive(5, 3) = {euclidean_gcd_recursive(5							,						3			)}'			)
      print(F'euclidean_gcd_recursive(1, 3) = {euclidean_gcd_recursive(1							,						3			)}'			)
      print(F'euclidean_gcd_recursive(3, 6) = {euclidean_gcd_recursive(3							,						6			)}'			)
      print(F'euclidean_gcd_recursive(6, 3) = {euclidean_gcd_recursive(6							,						3			)}'			)


if __name__ == "__main__":
       main()






