#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
int n, f[105][105][2], g[105][2], ans[105], siz[105], C[105][105];
int fir[105], nxt[105 << 1], to[105 << 1], tot;
void line(int x, int y) { nxt[++tot] = fir[x], fir[x] = tot, to[tot] = y; }
void dfs(int u, int ff) {
  siz[u] = f[u][1][0] = f[u][1][1] = 1;
  for (int i = fir[u], v; i; i = nxt[i])
    if ((v = to[i]) != ff) {
      dfs(v, u);
      memcpy(g, f[u], sizeof f[u]), memset(f[u], 0, sizeof f[u]);
      for (int j = 1; j <= siz[u]; j++)
        for (int k = 1; k <= siz[v]; k++) {
          f[u][j + k][0] =
              (f[u][j + k][0] + (1ll * g[j][0] * f[v][k][1])) % mod;
          f[u][j + k][1] =
              (f[u][j + k][1] + (1ll * g[j][1] * f[v][k][1])) % mod;
          f[u][j + k - 1][0] =
              (f[u][j + k - 1][0] + (1ll * g[j][0] * f[v][k][0])) % mod;
          f[u][j + k - 1][1] =
              (f[u][j + k - 1][1] +
               (1ll * g[j][1] * f[v][k][0] + 1ll * g[j][0] * f[v][k][1])) %
              mod;
        }
      siz[u] += siz[v];
    }
}
int Pow(int a, int b) {
  int s = 1;
  for (; b; b >>= 1, a = 1ll * a * a % mod) b & 1 && (s = 1ll * s * a % mod);
  return s;
}
int main() {
  scanf("%d", &n);
  for (int i = 1, x, y; i < n; i++)
    scanf("%d%d", &x, &y), line(x, y), line(y, x);
  dfs(1, 0);
  for (int i = 1; i <= n; i++)
    ans[n - i] =
        1ll * f[1][i][1] * (i > 1 ? Pow(n, i - 2) : Pow(n, mod - 2)) % mod;
  for (int i = 0; i < n; i++)
    for (int j = C[i][0] = 1; j <= i; j++)
      C[i][j] = (C[i - 1][j - 1] + C[i - 1][j]) % mod;
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++)
      ans[i] = (ans[i] + (1ll * (j - i & 1 ? -1 : 1) * C[j][i] * ans[j])) % mod;
    printf("%d%c", (ans[i] + mod) % mod, i == n - 1 ? 10 : 32);
  }
}
