#include <bits/stdc++.h>
using namespace std;
template <class T>
void read(T& x) {
  char c = getchar();
  T p = 1, n = 0;
  while (c < '0' || c > '9') {
    if (c == '-') p = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    n = n * 10 + c - '0';
    c = getchar();
  }
  x = p * n;
}
template <class T, class U>
void read(T& x, U& y) {
  read(x), read(y);
}
template <class T, class U, class V>
void read(T& x, U& y, V& z) {
  read(x), read(y), read(z);
}
const int maxn = 105, mod = 1e9 + 7;
bool G[maxn][maxn];
int A[maxn][maxn], n;
int power(int a, int b) {
  int r = 1;
  for (; b; b >>= 1, a = 1ll * a * a % mod)
    if (b & 1) r = 1ll * r * a % mod;
  return r;
}
int det() {
  int ans = 1;
  for (int i = 1; i < n; ++i) {
    int j;
    for (j = i; j < n; ++j)
      if (A[j][i]) break;
    for (int k = i; k < n; ++k) swap(A[j][k], A[i][k]);
    if (j != i) ans = mod - ans;
    ans = 1ll * ans * A[i][i] % mod;
    for (int k = i + 1; k < n; ++k)
      if (A[k][i]) {
        int d = 1ll * A[k][i] * power(A[i][i], mod - 2) % mod;
        for (int l = i; l < n; ++l)
          A[k][l] = (A[k][l] - 1ll * A[i][l] * d % mod + mod) % mod;
      }
  }
  return (ans + mod) % mod;
}
int calc(int x) {
  memset(A, 0, sizeof A);
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j < i; ++j)
      if (i != j) {
        if (G[i][j])
          A[i][j] = A[j][i] = mod - x, A[i][i] += x, A[j][j] += x;
        else
          A[i][j] = A[j][i] = mod - 1, ++A[i][i], ++A[j][j];
      }
  return det();
}
int D[maxn][maxn], b[maxn], s[maxn][maxn];
int main() {
  read(n);
  for (int i = 1, u, v; i < n; ++i) read(u, v), G[u][v] = G[v][u] = 1;
  for (int i = 0; i < n; ++i) D[0][i] = calc(i);
  for (int i = 1; i < n; ++i)
    for (int j = 0; j < n - i; ++j)
      D[i][j] = (D[i - 1][j + 1] - D[i - 1][j] + mod) % mod;
  int fac = 1;
  for (int i = 1; i < n; ++i) fac = 1ll * fac * i % mod;
  fac = power(fac, mod - 2);
  for (int i = n - 1; ~i; --i)
    b[i] = 1ll * D[i][0] * fac % mod, fac = 1ll * fac * i % mod;
  s[0][0] = 1;
  for (int i = 1; i < n; ++i)
    for (int j = 1; j <= i; ++j)
      s[i][j] = (s[i - 1][j - 1] + 1ll * (i - 1) * s[i - 1][j] % mod) % mod;
  for (int i = 0; i < n; ++i)
    for (int j = i - 1, m1 = mod - 1; ~j; --j, m1 = mod - m1)
      (b[j] += 1ll * s[i][j] * b[i] % mod * m1 % mod) %= mod;
  for (int i = 0; i < n; ++i) printf("%d%c", b[i], " \n"[i == n - 1]);
  return 0;
}
