#include <bits/stdc++.h>
using namespace std;
int mod = 1000000007;
long long Mod(long long x) { return x >= mod ? x - mod : x; }
long long read() {
  long long x = 0;
  int f = 1;
  char ch = getchar();
  for (; !isdigit(ch); ch = getchar())
    if (ch == '-') f = -1;
  for (; isdigit(ch); ch = getchar()) x = x * 10 + (ch ^ 48);
  return x * f;
}
void print(long long x) {
  if (x < 0) putchar('-'), x = -x;
  if (x > 9) print(x / 10);
  putchar(x % 10 + '0');
}
const int N = 110;
int n, u[N], v[N];
long long g[N][N], a[N], f[N][N];
long long qpow(long long a, int b) {
  long long ans = 1;
  while (b) {
    if (b & 1) ans = ans * a % mod;
    a = a * a % mod, b >>= 1;
  }
  return ans;
}
long long ans[N];
void Gauss() {
  for (int i = 0; i < n; i++) {
    int p;
    for (p = i; p < n; p++)
      if (g[p][i]) break;
    if (p != i) swap(g[p], g[i]);
    long long inv = qpow(g[i][i], mod - 2);
    for (int j = i; j <= n; j++) g[i][j] = g[i][j] * inv % mod;
    for (int j = i + 1; j < n; j++)
      for (int k = n; k >= i; k--)
        g[j][k] = Mod(g[j][k] - g[j][i] * g[i][k] % mod + mod);
  }
  for (int i = n - 1; ~i; i--) {
    ans[i] = g[i][n];
    for (int j = n - 1; j > i; j--)
      ans[i] = Mod(ans[i] - g[i][j] * ans[j] % mod + mod);
  }
}
long long Matrix_Tree() {
  long long ans = 1;
  for (int i = 1; i < n; i++) {
    int p;
    for (p = i; p < n; p++)
      if (f[p][i]) break;
    if (p != i) swap(f[p], f[i]), ans = -ans;
    long long inv = qpow(f[i][i], mod - 2);
    for (int j = i + 1; j < n; j++) {
      long long mul = f[j][i] * inv % mod;
      for (int k = i; k < n; k++)
        f[j][k] = Mod(f[j][k] - mul * f[i][k] % mod + mod);
    }
    ans = ans * f[i][i] % mod;
    if (!ans) return ans;
  }
  return ans;
}
void init() {
  for (int i = 1; i <= n; i++) f[i][i] = n - 1;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++)
      if (i ^ j) f[i][j] = mod - 1;
}
long long solve(long long x) {
  init();
  for (int i = 1; i < n; i++)
    f[u[i]][u[i]] += x - 1, f[v[i]][v[i]] += x - 1,
        f[u[i]][v[i]] = f[v[i]][u[i]] = mod - x;
  return Matrix_Tree();
}
int main() {
  n = read();
  for (int i = 1; i < n; i++) u[i] = read(), v[i] = read();
  for (int x = 1; x <= n; x++) {
    g[x - 1][n] = solve(x);
    for (int i = 0; i < n; i++) g[x - 1][i] = qpow(x, i);
  }
  Gauss();
  for (int i = 0; i < n; i++) print(ans[i]), putchar(' ');
}
