output_description: If no permutation satisfies the condition, print `-1`.
  
  Otherwise, print a permutation satisfying the condition, with space in
  between. If there are multiple solutions, you can print any of them.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      a_1 b_1
      a_2 b_2
      \vdots
      a_{N-1} b_{N-1}
attempt: g = {}
  n = int(input())
  m = [-1] * n
  
  
  def dfs(graph, node, height):
      global m
      global zeros
      global ones
      m[node - 1] = height
      if height == 0:
          zeros += 1
      if height == 1:
          ones += 1
      for n in graph[node]:
          if m[n - 1] == -1:
              dfs(graph, n, 1 - height)
  
  
  zeros = 0
  ones = 0
  for i in range(n - 1):
      a, b = map(int, input().split())
      if not a in g:
          g[a] = [b]
      else:
          g[a].append(b)
      if not b in g:
          g[b] = [a]
      else:
          g[b].append(a)
  dfs(g, 1, 0)
  print(1)
  
problem_description: Statement
  
  We have a tree with N vertices. The vertices are numbered 1 to N, and the i-th
  edge connects Vertex a_i and Vertex b_i.
  
  Takahashi loves the number 3. He is seeking a permutation p_1, p_2, \ldots ,
  p_N of integers from 1 to N satisfying the following condition:
  
    * For every pair of vertices (i, j), if the distance between Vertex i and Vertex j is 3, the sum or product of p_i and p_j is a multiple of 3.
  
  Here the distance between Vertex i and Vertex j is the number of edges
  contained in the shortest path from Vertex i to Vertex j.
  
  Help Takahashi by finding a permutation that satisfies the condition.
samples: [{"input": "5\n    1 2\n    1 3\n    3 4\n    3 5", "output": "1 2 5 4 3 \n    \n\nThe distance between two vertices is 3 for the two pairs (2, 4) and (2, 5).\n\n  * p_2 + p_4 = 6\n  * p_2\\times p_5 = 6\n\nThus, this permutation satisfies the condition."}]