#include <bits/stdc++.h>
using namespace std;
const int N = 105, mod = 1e9 + 7;
int bm(int b, int p) {
  if (p == 0) return 1;
  int t = bm(b, p >> 1);
  t = 1ll * t * t % mod;
  if (p & 1) return 1ll * t * b % mod;
  return t;
}
vector<int> G[N];
int dp[N][N][N], inner[N][N];
int sub[N], res[N], C[N][N];
void dfs(int u, int p) {
  sub[u] = 1;
  dp[u][0][1] = 1;
  for (int v : G[u]) {
    if (v == p) continue;
    dfs(v, u);
    for (int t = 0; t <= sub[u] + sub[v]; t++) {
      for (int tt = 0; tt <= sub[u] + sub[v]; tt++) {
        inner[t][tt] = 0;
      }
    }
    for (int i = 0; i <= sub[u]; i++) {
      for (int j = 0; j <= sub[v]; j++) {
        for (int si = 1; si + i <= sub[u]; si++) {
          for (int sj = 0; sj + j <= sub[v]; sj++) {
            inner[i + j][si + sj] += 1ll * dp[u][i][si] * dp[v][j][sj] % mod;
            if (inner[i + j][si + sj] >= mod) inner[i + j][si + sj] -= mod;
          }
        }
      }
    }
    for (int t = 0; t <= sub[u] + sub[v]; t++) {
      for (int tt = 0; tt <= sub[u] + sub[v]; tt++) {
        dp[u][t][tt] = inner[t][tt];
      }
    }
    sub[u] += sub[v];
  }
  for (int i = sub[u]; i >= 0; i--) {
    for (int x = 1; x <= sub[u]; x++) {
      dp[u][i + 1][0] += 1ll * dp[u][i][x] * x % mod;
      if (dp[u][i + 1][0] >= mod) dp[u][i + 1][0] -= mod;
    }
  }
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  for (int i = 0; i <= n; i++) {
    C[i][0] = 1;
    for (int j = 1; j <= i; j++) {
      C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % mod;
    }
  }
  for (int i = 1; i < n; i++) {
    int u, v;
    cin >> u >> v;
    G[u].push_back(v);
    G[v].push_back(u);
  }
  dfs(1, -1);
  res[n - 1] = 1;
  for (int taken_edge = n - 2; taken_edge >= 0; taken_edge--) {
    int grp = n - taken_edge;
    int ways = 1ll * dp[1][grp][0] * bm(n, n - 2 - taken_edge) % mod;
    for (int tt = taken_edge + 1; tt < n; tt++) {
      int bad = 1ll * C[tt][taken_edge] * res[tt] % mod;
      ways -= bad;
      if (ways < 0) ways += mod;
    }
    res[taken_edge] = ways;
  }
  for (int i = 0; i <= n - 1; i++) {
    cout << res[i] << " ";
  }
  return 0;
}
