#include <bits/stdc++.h>
using namespace std;
int gi() {
  int res = 0, s = 1;
  char ch;
  for (ch = getchar(); (ch < '0' || ch > '9') && ch != '-'; ch = getchar())
    ;
  if (ch == '-') s = -1, ch = getchar();
  for (; ch >= '0' && ch <= '9'; ch = getchar()) res = res * 10 + ch - 48;
  return res * s;
}
int n, U[105], V[105];
long long fx[105], mat[105][105];
long long sum[105], c[105];
long long qp(long long x, long long y) {
  long long res = 1;
  for (; y; y >>= 1, x = x * x % 1000000007)
    if (y & 1) res = res * x % 1000000007;
  return res;
}
long long inv(long long x) { return qp(x, 1000000007 - 2); }
long long gauss() {
  long long ans = 1, tmp;
  n--;
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= n; ++j)
      mat[i][j] = (mat[i][j] % 1000000007 + 1000000007) % 1000000007;
  for (int i = 1; i <= n; ++i) {
    for (int j = i; j <= n; ++j) {
      if (mat[j][i]) {
        for (int k = 1; k <= n; ++k) swap(mat[i][k], mat[j][k]);
        if (i != j) ans *= -1;
        break;
      }
    }
    for (int j = i + 1; j <= n; ++j) {
      if (i == j || !mat[j][i]) continue;
      tmp = mat[j][i] * inv(mat[i][i]) % 1000000007;
      for (int k = 1; k <= n; ++k) {
        mat[j][k] -= mat[i][k] * tmp % 1000000007;
        mat[j][k] < 0 ? mat[j][k] += 1000000007 : 0;
      }
    }
    ans = ans * mat[i][i] % 1000000007;
    ans < 0 ? ans += 1000000007 : 0;
  }
  n++;
  return ans;
}
int main() {
  n = gi();
  for (int i = 1; i < n; ++i) U[i] = gi(), V[i] = gi();
  for (int x = 1; x <= n; ++x) {
    memset(mat, 0, sizeof(mat));
    for (int i = 1; i <= n; ++i)
      for (int j = i + 1; j <= n; ++j)
        mat[i][j] = mat[j][i] = -1, mat[i][i]++, mat[j][j]++;
    for (int i = 1; i < n; ++i)
      mat[U[i]][V[i]] -= x - 1, mat[V[i]][U[i]] -= x - 1,
          mat[U[i]][U[i]] += x - 1, mat[V[i]][V[i]] += x - 1;
    fx[x] = gauss();
  }
  long long tmp;
  for (int t = 1; t <= n; ++t) {
    memset(c, 0, sizeof(c));
    c[0] = 1;
    tmp = 1;
    for (int i = 1; i <= n; ++i) {
      if (i == t) continue;
      for (int j = n - 1; j >= 0; --j) {
        c[j] = c[j] * (-i) % 1000000007;
        c[j] < 0 ? c[j] += 1000000007 : 0;
        if (j) c[j] += c[j - 1], c[j] >= 1000000007 ? c[j] -= 1000000007 : 0;
      }
      tmp = tmp * (t - i) % 1000000007;
      tmp < 0 ? tmp += 1000000007 : 0;
    }
    tmp = inv(tmp) * fx[t] % 1000000007;
    for (int i = 0; i <= n - 1; ++i)
      sum[i] += c[i] * tmp % 1000000007,
          sum[i] >= 1000000007 ? sum[i] -= 1000000007 : 0;
  }
  for (int i = 0; i <= n - 1; ++i) printf("%I64d ", sum[i]);
  return 0;
}
