output_description: Print a coloring of the vertices that satisfies the condition, in N lines. The
  i-th line should contain `0` if Vertex i is painted white and `1` if it is
  painted black.
  
  If there are multiple colorings that satisfy the condition, any of them will
  be accepted.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      u_1 v_1 w_1
      u_2 v_2 w_2
      .
      .
      .
      u_{N - 1} v_{N - 1} w_{N - 1}
attempt: import sys
  
  N = int(sys.stdin.readline())
  uvw = sorted([list(map(int, sys.stdin.readline().split())) for _ in range(N - 1)])
  
  w_list = []
  b_list = []
  ans_dic = {}
  
  for i in range(N - 1):
      if uvw[i][2] % 2 == 0:
          if uvw[i][0] in w_list:
              if str(uvw[i][1]) not in ans_dic.keys():
                  ans_dic[str(uvw[i][1])] = 0
                  w_list.append(uvw[i][1])
          elif uvw[i][0] in b_list:
              if str(uvw[i][1]) not in ans_dic.keys():
                  ans_dic[str(uvw[i][1])] = 1
                  b_list.append(uvw[i][1])
          elif uvw[i][1] in w_list:
              if str(uvw[i][0]) not in ans_dic.keys():
                  ans_dic[str(uvw[i][0])] = 0
                  w_list.append(uvw[i][0])
          elif uvw[i][1] in b_list:
              if str(uvw[i][0]) not in ans_dic.keys():
                  ans_dic[str(uvw[i][0])] = 1
                  b_list.append(uvw[i][0])
          else:
              ans_dic[str(uvw[i][0])] = 0
              ans_dic[str(uvw[i][1])] = 0
              w_list.append(uvw[i][0])
              w_list.append(uvw[i][1])
      else:
          if uvw[i][0] in w_list:
              if str(uvw[i][1]) not in ans_dic.keys():
                  ans_dic[str(uvw[i][1])] = 1
                  b_list.append(uvw[i][1])
          elif uvw[i][0] in b_list:
              if str(uvw[i][1]) not in ans_dic.keys():
                  ans_dic[str(uvw[i][1])] = 0
                  w_list.append(uvw[i][1])
          elif uvw[i][1] in w_list:
              if str(uvw[i][0]) not in ans_dic.keys():
                  ans_dic[str(uvw[i][0])] = 1
                  b_list.append(uvw[i][0])
          elif uvw[i][1] in b_list:
              if str(uvw[i][0]) not in ans_dic.keys():
                  ans_dic[str(uvw[i][0])] = 0
                  w_list.append(uvw[i][0])
          else:
              ans_dic[str(uvw[i][0])] = 0
              ans_dic[str(uvw[i][1])] = 1
              w_list.append(uvw[i][0])
              b_list.append(uvw[i][1])
  
  ans_dic = sorted(ans_dic.items())
  for _, v in ans_dic:
      print(v)
  
problem_description: Statement
  
  We have a tree with N vertices numbered 1 to N. The i-th edge in the tree
  connects Vertex u_i and Vertex v_i, and its length is w_i. Your objective is
  to paint each vertex in the tree white or black (it is fine to paint all
  vertices the same color) so that the following condition is satisfied:
  
    * For any two vertices painted in the same color, the distance between them is an even number.
  
  Find a coloring of the vertices that satisfies the condition and print it. It
  can be proved that at least one such coloring exists under the constraints of
  this problem.
samples: [{"input": "3\n    1 2 2\n    2 3 1", "output": "0\n    0\n    1\n    \n\n* * *"}, {"input": "5\n    2 5 2\n    2 3 10\n    1 3 8\n    3 4 2", "output": "1\n    0\n    1\n    0\n    1"}]