output_description: For each k=1, 2, ..., N in this order, print a line containing the answer to
  the problem.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      a_1 b_1
      :
      a_{N-1} b_{N-1}
attempt: def main():
      mod = 10**9 + 7
      fact = [1, 1]
      for i in range(2, 200000):
          fact.append(fact[-1] * i % mod)
      n = int(input())
      ab = [list(map(int, input().split())) for _ in [0] * (n - 1)]
      g = [[] for _ in [0] * n]
      [g[a - 1].append(b - 1) for a, b in ab]
      [g[b - 1].append(a - 1) for a, b in ab]
      g2 = [set(i) for i in g]
      child = [1] * n  # 子の数
      q = [-1, 0]
      while len(q) > 1:  # DFS
          i = q[-1]
          if g2[i]:
              j = g2[i].pop()
              g2[j].remove(i)
              q.append(j)
          else:
              q.pop()
              if len(q) > 1:
                  child[q[-1]] += child[i]
      rank = [(j, i) for i, j in enumerate(child)]
      rank = [j for i, j in sorted(rank)]
      dp = [1] * n
      for i in rank:
          c = child[i]
          ans = fact[c - 1]
          temp = 1
          for j in g[i]:
              if child[j] < c:
                  ans = ans * dp[j] % mod
                  temp = temp * fact[child[j]] % mod
          dp[i] = ans * pow(temp, mod - 2, mod) % mod
      dp2 = [0] * n
      dp2[0] = dp[0]
      g2 = [set(i) for i in g]
      q = [-1, 0]
      while len(q) > 1:  # DFS
          i = q[-1]
          if g2[i]:
              j = g2[i].pop()
              c = child[j]
              temp = fact[n - c] * fact[c - 1]
              dp2[j] = (
                  dp2[i] * (fact[c] * fact[n - c - 1]) * pow(temp, mod - 2, mod) % mod
              )
              g2[j].remove(i)
              q.append(j)
          else:
              q.pop()
              if len(q) > 1:
                  child[q[-1]] += child[i]
  
      for i in dp2:
          print(i)
  
  
  main()
  
problem_description: Statement
  
  We have a tree with N vertices numbered 1 to N. The i-th edge in this tree
  connects Vertex a_i and b_i. For each k=1, ..., N, solve the problem below:
  
    * Consider writing a number on each vertex in the tree in the following manner:
      * First, write 1 on Vertex k.
      * Then, for each of the numbers 2, ..., N in this order, write the number on the vertex chosen as follows:
        * Choose a vertex that still does not have a number written on it and is adjacent to a vertex with a number already written on it. If there are multiple such vertices, choose one of them at random.
    * Find the number of ways in which we can write the numbers on the vertices, modulo (10^9+7).
samples: [{"input": "3\n    1 2\n    1 3", "output": "2\n    1\n    1\n    \n\nThe graph in this input is as follows:\n\n![Figure](https://img.atcoder.jp/ghi/1c88b0eb716ba399b1c5d6565ab62337.png)\n\nFor k=1, there are two ways in which we can write the numbers on the vertices,\nas follows:\n\n  * Writing 1, 2, 3 on Vertex 1, 2, 3, respectively\n  * Writing 1, 3, 2 on Vertex 1, 2, 3, respectively\n\n* * *"}, {"input": "2\n    1 2", "output": "1\n    1\n    \n\nThe graph in this input is as follows:\n\n![Figure](https://img.atcoder.jp/ghi/c47c7798f88e7bfec30fbd664dc9ad50.png)\n\n* * *"}, {"input": "5\n    1 2\n    2 3\n    3 4\n    3 5", "output": "2\n    8\n    12\n    3\n    3\n    \n\nThe graph in this input is as follows:\n\n![Figure](https://img.atcoder.jp/ghi/e9c09403f8d96ae4e679a226993defa6.png)\n\n* * *"}, {"input": "8\n    1 2\n    2 3\n    3 4\n    3 5\n    3 6\n    6 7\n    6 8", "output": "40\n    280\n    840\n    120\n    120\n    504\n    72\n    72\n    \n\nThe graph in this input is as follows:\n\n![Figure](https://img.atcoder.jp/ghi/a85459a03d436560bfe2e911d8cec4e6.png)"}]