






'''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 	lowerCAmelCase__      (       SCREAMING_SNAKE_CASE__		):
 __a     :						str          =    [False] * len(__lowercase		)
 __a     :						Optional[Any]          =    [-1] * len(__lowercase		)

 def dfs(SCREAMING_SNAKE_CASE__							,		SCREAMING_SNAKE_CASE__		):
  __a     :						List[Any]          =    True
  __a     :						Any          =    c
  for u in graph[v]:
   if not visited[u]:
    dfs(__lowercase							,		1 - c		)

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

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

 return True


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




print(check_bipartite_dfs(graph))












import requests






def      _snake_case     (__lowercase     ,   __lowercase):
   UpperCamelCase_						=  {'Content-Type': 'application/json'}
   UpperCamelCase_						=  requests.post(__lowercase     ,   json={'text': message_body}     ,   headers=__lowercase)
   if response.status_code != 200:
      UpperCamelCase_						=  (
          'Request to slack returned an error '
          f"""{response.status_code}, the response is:\n{response.text}"""
      )
      raise ValueError(__lowercase)


if __name__ == "__main__":
 # Set the slack url to the one provided by Slack when you create the webhook at
 # https://my.slack.com/services/new/incoming-webhook/
 send_slack_message("""<YOUR MESSAGE BODY>""", """<SLACK CHANNEL URL>""")





