



"""simple docstring"""
# A Bipartite Graph is a graph whose vertices can be divided into two independent sets,
# U and V such that every edge (u, v) either connects a vertex from U to V or a vertex
# from V to U. In other words, for every edge (u, v), either u belongs to U and v to V,
# or u belongs to V and v to U. We can also say that there is no edge that connects
# vertices of same set.









def      __magic_name__				(							lowercase ):
			SCREAMING_SNAKE_CASE_: List[str]     			=[False] * len(_A )
			SCREAMING_SNAKE_CASE_: Tuple     			=[-1] * len(_A )

			def dfs(lowercase							,			lowercase ):
						SCREAMING_SNAKE_CASE_: Union[str, Any]     			=True
						SCREAMING_SNAKE_CASE_: List[str]     			=c
						for u in graph[v]:
									if not visited[u]:
												dfs(_A							,			1 - c )

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

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

			return True


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








"""simple docstring"""
def      __magic_name__				(							lowercase = 200_0000 ):
   SCREAMING_SNAKE_CASE_: List[Any]     			=[0 for i in range(n + 1 )]
   SCREAMING_SNAKE_CASE_: Union[str, Any]     			=1
   SCREAMING_SNAKE_CASE_: Optional[Any]     			=1

   for i in range(2							,			int(n**0.5 ) + 1 ):
      if primality_list[i] == 0:
         for j in range(i * i							,			n + 1							,			lowercase ):
            SCREAMING_SNAKE_CASE_: Optional[int]     			=1
   SCREAMING_SNAKE_CASE_: Dict     			=0
   for i in range(lowercase ):
      if primality_list[i] == 0:
         sum_of_primes += i
   return sum_of_primes


if __name__ == "__main__":
   print(f"""{solution() = }""")



