new_contents: #Uses python3
  
  import sys
  import queue
  
  def BFS(adj, s):
      dist = [-1] * len(adj)
      dist[s] = 0
      q = queue.Queue()
      q.put(s)
      while not q.empty():
          u = q.get()
          for v in adj[u]:
              if dist[v] == -1:
                  q.put(v)
                  dist[v] = (dist[u] + 1) % 2
              elif dist[v] == dist[u]:
                  return 0
      return 1
  
  def bipartite(adj):
      return BFS(adj,0)
  
  if __name__ == '__main__':
      # input = sys.stdin.read()
      with open('test', 'r') as f:
          input = f.read()
      data = list(map(int, input.split()))
      n, m = data[0:2]
      data = data[2:]
      edges = list(zip(data[0:(2 * m):2], data[1:(2 * m):2]))
      adj = [[] for _ in range(n)]
      for (a, b) in edges:
          adj[a - 1].append(b - 1)
          adj[b - 1].append(a - 1)
      print(bipartite(adj))
  
subject: Create bipartite.py