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: class branch:
      def __init__(self, num: int, top: int, long: int):
          self.num = num
  
          self.top = [top]
          self.long = [long]
  
  
  N = 0
  top = []
  list = []
  
  N = int(input())
  for i in range(N + 1):
      top.insert(i, 2)
  
  for i in range(N + 1):
      list.insert(i, None)
  
  
  for i in range(N - 1):
      Input = input().split()
      num = [(int(Input[0]))]
      num.append(int(Input[1]))
      num.append(int(Input[2]))
  
      if list[num[0]] == None:
          list.insert(num[0], branch(1, num[1], num[2]))
      else:
          list[num[0]].num += 1
          list[num[0]].top.append(num[1])
          list[num[0]].long.append(num[2])
  
      if list[num[1]] == None:
          list.insert(num[1], branch(1, num[0], num[2]))
      else:
          list[num[1]].num += 1
          list[num[1]].top.append(num[0])
          list[num[1]].long.append(num[2])
  
  
  for i in range(1, N + 1, 1):
      if list[i] == None:
          top[i] = 0
      else:
          if top[i] == 2:
              top[i] = 0
              for j in range(list[i].num):
                  if top[list[i].top[j]] != 2:
                      if list[i].long[j] % 2:
                          top[i] = top[list[i].top[j]] ^ 1
                      break
  
              for j in range(list[i].num):
                  if list[i].long[j] % 2:
                      top[list[i].top[j]] = top[i] ^ 1
          else:
              for j in range(list[i].num):
                  if list[i].long[j] % 2:
                      top[list[i].top[j]] = top[i] ^ 1
      print(top[i])
  
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"}]