





def        __lowerCamelCase (							__a       :List[str]   )		->    Optional[int]:






		"""simple docstring"""

		A__  				=       [False] * len(snake_case_   )
		A__  				=       [-1] * len(snake_case_   )

		def dfs(__a       :Any   ,					__a       :Optional[Any]   ):
				A__  				=       True
				A__  				=       c
				for u in graph[v]:
						if not visited[u]:
								dfs(snake_case_   ,					1 - c   )

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

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

		return True


# Adjacency list of graph
A   : Optional[Any]			=				{0: [1, 3], 1: [0, 2], 2: [1, 3], 3: [0, 2], 4: []}






print(check_bipartite_dfs(graph))








from maths.is_square_free import is_square_free
from maths.prime_factors import prime_factors







def        __lowerCamelCase (							__a       :int   )		->    int:






		"""simple docstring"""

		A__  				=       prime_factors(__a   )
		if is_square_free(__a   ):
				return -1 if len(__a   ) % 2 else 1
		return 0


if __name__ == "__main__":
					import doctest

					doctest.testmod()



