#include <bits/stdc++.h>
using namespace std;
using LL = long long;
const int N = 101;
const int mod = 1000000007;
struct Matrix {
  int n, mat[N][N];
  Matrix(int n) : n(n) {
    for (int i = 0; i < n; i++) memset(mat[i], 0, sizeof(int) * n);
  }
  void init(int x) {
    for (int i = 0; i < n; i++)
      for (int j = 0; j < n; j++) mat[i][j] = x;
  }
  void uni() {
    for (int i = 0; i < n; i++)
      for (int j = 0; j < n; j++) mat[i][j] = i == j;
  }
  int inv(int x) {
    if (x < 2) return x;
    return (LL)mod / x * (mod - inv(mod % x)) % mod;
  }
  Matrix operator*(const Matrix &b) const {
    Matrix ret(n);
    for (int i = 0; i < n; i++)
      for (int j = 0; j < n; j++)
        for (int k = 0; k < n; k++)
          ret.mat[i][j] = (ret.mat[i][j] + ((LL)mat[i][k] * b.mat[k][j])) % mod;
    return ret;
  }
  int determinant(int ans = 1) {
    for (int i = 0, j, k, r, g; i < n; i++) {
      k = -1;
      for (j = i; j < n && k == -1; j++)
        if (mat[j][i]) k = j;
      if (k == -1) return 0;
      if (i != j)
        for (j = i; j < n; j++) swap(mat[i][j], mat[k][j]);
      g = (mod - inv(mat[i][i])) % mod;
      for (j = i + 1; j < n; j++)
        if (mat[i][j]) {
          r = (LL)mat[i][j] * g % mod;
          for (k = i; k < n; k++) {
            mat[k][j] = (mat[k][j] + (LL)mat[k][i] * r) % mod;
          }
        }
    }
    for (int i = 0; i < n; i++) ans = (LL)ans * mat[i][i] % mod;
    return ans;
  }
};
int U[N], V[N], deg[N], y[N], ans[N], h[N], ch[N];
void solve() {
  int n;
  scanf("%d", &n);
  Matrix a(n - 1);
  for (int i = 1, u, v; i < n; i++) {
    cin >> U[i] >> V[i];
    deg[--U[i]]++, deg[--V[i]]++;
  }
  for (int x = 1, mo, m; x <= n; x++) {
    a.init(mod - 1);
    for (int i = 1; i < n; i++) {
      a.mat[U[i]][V[i]] = mod - x;
      a.mat[V[i]][U[i]] = mod - x;
    }
    for (int i = 0; i < n - 1; i++) {
      a.mat[i][i] = (n - 1 - deg[i]) * 1 + deg[i] * x;
    }
    y[x] = a.determinant();
    mo = m = h[0] = 1;
    for (int i = 1; i <= n; i++)
      if (i != x) {
        for (int j = 0; j < m; j++) {
          ch[j] = (mod - (LL)h[j] * i % mod) % mod;
        }
        ch[m] = 0;
        for (int j = 1; j <= m; j++) ch[j] = (ch[j] + h[j - 1]) % mod;
        m++;
        for (int j = 0; j < m; j++) h[j] = ch[j];
        mo = ((LL)mo * (x - i) % mod + mod) % mod;
      }
    mo = (LL)y[x] * a.inv(mo) % mod;
    for (int i = 0; i < m; i++) ans[i] = (ans[i] + (LL)mo * h[i]) % mod;
  }
  for (int i = 0; i < n; i++) printf("%d ", ans[i]);
  puts("");
}
int main() {
  solve();
  return 0;
}
