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: N = int(input())
  
  
  # v0 o v1 o v2
  # 1    0    1
  
  # v0 e v1 o v2
  # 1    1    0
  
  # v0 e v1 e v2
  # 1    1    1
  
  # v0 o v1 e v2
  # 1    0    0
  
  
  class Color:
      def __init__(self, c):
          self.c = c
  
  
  color = [None] * N
  edge = []
  
  for i in range(0, N - 1):
      u, v, w = [int(x) for x in input().split()]
      if w & 1 == 0:
          edge.append((u - 1, v - 1, True))
      else:
          edge.append((u - 1, v - 1, False))
  
  edge.sort()
  
  for u, v, w in edge:
      cu = color[u]
      if cu:
          if w:
              color[v] = cu
          else:
              if color[v]:
                  color[v].c = 1 - cu.c
              else:
                  color[v] = Color(1 - cu.c)
      else:
          if w:
              if color[v]:
                  color[u] = color[v]
              else:
                  color[v] = Color(0)
                  color[u] = color[v]
          else:
              if color[v]:
                  color[u] = Color(1 - color[v].c)
              else:
                  color[v] = Color(0)
                  color[u] = Color(1)
  for u, v, w in edge:
      cu = color[u]
      if cu:
          if w:
              color[v] = cu
          else:
              if color[v]:
                  color[v].c = 1 - cu.c
              else:
                  color[v] = Color(1 - cu.c)
      else:
          if w:
              if color[v]:
                  color[u] = color[v]
              else:
                  color[v] = Color(0)
                  color[u] = color[v]
          else:
              if color[v]:
                  color[u] = Color(1 - color[v].c)
              else:
                  color[v] = Color(0)
                  color[u] = Color(1)
  
  for e in color:
      print(e.c)
  
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"}]