#include <bits/stdc++.h>
using namespace std;
int min(int a, int b) { return a < b ? a : b; }
int max(int a, int b) { return a > b ? a : b; }
void bmax(int &a, int b) { a = (a > b) ? a : b; }
void bmin(int &a, int b) { a = (a < b) ? a : b; }
int read() {
  int x = 0, w = 1;
  char ch = getchar();
  while (ch > '9' || ch < '0') {
    if (ch == '-') w = -1;
    ch = getchar();
  }
  while (ch <= '9' && ch >= '0') x = x * 10 + ch - '0', ch = getchar();
  return x * w;
}
const int N = 110, Mod = 1e9 + 7;
int power(int a, int b) {
  int res = 1;
  for (; b; b >>= 1, a = 1ll * a * a % Mod)
    if (b & 1) res = 1ll * res * a % Mod;
  return res;
}
int n, F[N], G[N], C[N][N], f[N][N][2], g[N][2], siz[N];
vector<int> Ed[N];
void Init() {
  C[0][0] = 1;
  for (int i = 1; i <= n; i++)
    for (int j = C[i][0] = 1; j <= n; j++)
      C[i][j] = (C[i - 1][j - 1] + C[i - 1][j]) % Mod;
}
void Add(int &x, int v) {
  x = (x + v - Mod);
  x += (x >> 31) & Mod;
}
void DFS(int u, int fa) {
  int(*nw)[2] = f[u];
  nw[1][0] = nw[1][1] = 1;
  siz[u] = 1;
  for (int t = 0; t < Ed[u].size(); t++) {
    int v = Ed[u][t];
    if (v == fa) continue;
    DFS(v, u);
    int(*las)[2] = f[v];
    for (int i = 0; i <= siz[u]; i++)
      for (int j = 0; j <= siz[v]; j++) {
        Add(g[i + j][0], 1ll * nw[i][0] * las[j][1] % Mod);
        Add(g[i + j][1], 1ll * nw[i][1] * las[j][1] % Mod);
        if (i + j) {
          Add(g[i + j - 1][0], 1ll * nw[i][0] * las[j][0] % Mod);
          Add(g[i + j - 1][1], 1ll * nw[i][1] * las[j][0] % Mod);
          Add(g[i + j - 1][1], 1ll * nw[i][0] * las[j][1] % Mod);
        }
      }
    for (int i = 0; i <= siz[u] + siz[v]; i++)
      f[u][i][0] = g[i][0], f[u][i][1] = g[i][1], g[i][0] = g[i][1] = 0;
    siz[u] += siz[v];
  }
}
int main() {
  n = read();
  for (int i = 1, u, v; i < n; i++)
    u = read(), v = read(), Ed[u].push_back(v), Ed[v].push_back(u);
  Init();
  DFS(1, 0);
  for (int i = 0; i < n - 1; i++)
    G[i] = 1ll * f[1][n - i][1] * power(n, n - i - 2) % Mod;
  G[n - 1] = 1;
  for (int i = 0; i < n; i++)
    for (int j = i; j < n; j++)
      if ((j - i) & 1)
        Add(F[i], Mod - 1ll * G[j] * C[j][i] % Mod);
      else
        Add(F[i], 1ll * G[j] * C[j][i] % Mod);
  for (int i = 0; i < n; i++) printf("%d ", F[i]);
  puts("");
  return 0;
}
