#include <bits/stdc++.h>
using namespace std;
template <class T>
T gi() {
  T x = 0;
  bool f = 0;
  char c = getchar();
  while (c != '-' && (c < '0' || c > '9')) c = getchar();
  if (c == '-') f = 1, c = getchar();
  while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
  return f ? -x : x;
}
const int N = 110, Mod = 1e9 + 7;
struct node {
  int to, nxt;
} g[N << 1];
void pls(int &x, int y) {
  x += y;
  if (x >= Mod) x -= Mod;
}
int fpow(int a, int b) {
  bool flg = 0;
  if (b <= 0) flg = 1, b = -b;
  int res = 1;
  for (; b; b >>= 1, a = 1ll * a * a % Mod)
    if (b & 1) res = 1ll * res * a % Mod;
  return flg ? fpow(res, Mod - 2) : res;
}
int lst[N], gl, inv[N];
void add(int x, int y) {
  g[++gl] = (node){y, lst[x]};
  lst[x] = gl;
  g[++gl] = (node){x, lst[y]};
  lst[y] = gl;
}
int f[N][N][N], siz[N], tmp[N][N];
void dfs(int u, int ff) {
  siz[u] = 1;
  f[u][0][1] = 1;
  for (int i = lst[u]; i; i = g[i].nxt) {
    int v = g[i].to;
    if (v == ff) continue;
    dfs(v, u);
    for (int j = 0; j < siz[u] + siz[v]; j++)
      for (int k = 1; k <= siz[u] + siz[v]; k++) tmp[j][k] = 0;
    for (int j = 0; j < siz[u]; j++)
      for (int k = 1; k <= siz[u]; k++)
        for (int l = 0; l < siz[v]; l++)
          for (int z = 1; z <= siz[v]; z++) {
            pls(tmp[j + l + 1][k], 1ll * f[u][j][k] * f[v][l][z] % Mod);
            pls(tmp[j + l][k + z], 1ll * f[u][j][k] * inv[k] % Mod *
                                       f[v][l][z] % Mod * inv[z] % Mod *
                                       (k + z) % Mod);
          }
    siz[u] += siz[v];
    for (int j = 0; j < siz[u]; j++)
      for (int k = 1; k <= siz[u]; k++) f[u][j][k] = tmp[j][k];
  }
}
int G[N], fac[N], ifac[N];
int C(int n, int m) { return 1ll * fac[n] * ifac[m] % Mod * ifac[n - m] % Mod; }
int main() {
  int n = gi<int>();
  for (int i = 1; i < n; i++) add(gi<int>(), gi<int>());
  for (int i = fac[0] = 1; i <= n; i++) {
    inv[i] = fpow(i, Mod - 2);
    fac[i] = 1ll * fac[i - 1] * i % Mod;
  }
  ifac[n] = fpow(fac[n], Mod - 2);
  for (int i = n; i; i--) ifac[i - 1] = 1ll * ifac[i] * i % Mod;
  dfs(1, 0);
  for (int i = 0; i < n; i++)
    for (int j = 1; j <= n; j++) pls(G[i], f[1][i][j]);
  for (int k = 0; k < n; k++) {
    int res = 0;
    for (int i = k; i < n; i++)
      pls(res, 1ll * ((i - k) & 1 ? Mod - 1 : 1) * C(i, k) % Mod *
                   fpow(n, n - i - 2) % Mod * G[n - 1 - i] % Mod);
    printf("%d ", res);
  }
  return 0;
}
