




# 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 		lowerCAmelCase_ (						lowerCamelCase ):
				__magic_name__						:						Tuple										=[False] * len(lowerCamelCase )
				__magic_name__						:						Any										=[-1] * len(lowerCamelCase )

				def dfs(lowerCamelCase						,  lowerCamelCase ):
								__magic_name__						:						str										=True
								__magic_name__						:						Optional[int]										=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
UpperCAmelCase_		:					List[str]          =  {0: [1, 3], 1: [0, 2], 2: [1, 3], 3: [0, 2], 4: []}



print(check_bipartite_dfs(graph))










from decimal import Decimal, getcontext
from math import ceil, factorial







def lowerCamelCase__  (     _lowercase ):

     '''simple docstring'''


     if not isinstance(_lowercase					,		_lowercase ):
          raise TypeError('''Undefined for non-integers''' )
     elif precision < 1:
          raise ValueError('''Undefined for non-natural numbers''' )

     UpperCAmelCase_     :				Tuple  =     precision
     UpperCAmelCase_     :				Optional[Any]  =     ceil(precision / 14 )
     UpperCAmelCase_     :				int  =     426880 * Decimal(10005 ).sqrt()
     UpperCAmelCase_     :				Tuple  =     1
     UpperCAmelCase_     :				List[Any]  =     13591409
     UpperCAmelCase_     :				Optional[Any]  =     Decimal(_lowercase )
     for k in range(1					,		_lowercase ):
          UpperCAmelCase_     :				List[str]  =     factorial(6 * k ) // (factorial(3 * k ) * factorial(_lowercase ) ** 3)
          linear_term += 545140134
          exponential_term *= -262537412640768000
          partial_sum += Decimal(multinomial_term * linear_term ) / exponential_term
     return str(constant_term / partial_sum )[:-1]


if __name__ == "__main__":
     __a							     =					50
     print(F"""The first {n} digits of pi is: {pi(n)}""")