#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long long n, u, v, w;
long long GA[105][105], a[105][105], b[105][105], ans[105];
long long quick_power(long long x, long long y) {
  long long res = 1;
  for (; y; y = y >> 1, x = (x * x) % mod) {
    if (y & 1) res = (res * x) % mod;
  }
  return res;
}
long long ducati_divide(long long x, long long y) {
  return (x * quick_power(y, mod - 2)) % mod;
}
long long Guass() {
  long long tot = 1, siz = n - 1;
  for (long long i = 1; i <= siz; i++) {
    long long pos = i;
    for (long long j = i + 1; j <= siz; j++) {
      if (a[j][i] > a[pos][i]) pos = j;
    }
    if (i != pos) swap(a[i], a[pos]), tot = mod - tot;
    if (a[i][i] == 0) return 0;
    for (long long j = i + 1; j <= siz; j++) {
      long long tmp = ducati_divide(a[j][i], a[i][i]);
      for (long long k = i; k <= siz; k++)
        a[j][k] = ((a[j][k] - a[i][k] * tmp) % mod + mod) % mod;
    }
  }
  for (long long i = 1; i <= siz; i++) tot = (tot * a[i][i]) % mod;
  return tot;
}
void get_ans() {
  for (long long i = 1; i <= n; i++) {
    long long pos = i;
    for (long long j = i + 1; j <= n; j++) {
      if (a[j][i] > a[pos][i]) pos = j;
    }
    if (i != pos) swap(a[i], a[pos]);
    if (a[i][i] == 0) break;
    for (long long j = i + 1; j <= n; j++) {
      long long tmp = ducati_divide(a[j][i], a[i][i]);
      for (long long k = i; k <= n + 1; k++)
        a[j][k] = ((a[j][k] - a[i][k] * tmp) % mod + mod) % mod;
    }
  }
  for (long long i = n; i >= 1; i--) {
    long long tmp = a[i][n + 1];
    for (long long j = i + 1; j <= n; j++)
      tmp = ((tmp - a[i][j] * ans[j]) % mod + mod) % mod;
    ans[i] = ducati_divide(tmp, a[i][i]);
  }
}
signed main() {
  cin >> n;
  for (long long i = 1; i < n; i++) {
    cin >> u >> v;
    GA[u][v] = GA[v][u] = 1;
  }
  for (long long i = 1; i <= n; i++) {
    for (long long j = 1; j <= n; j++) {
      for (long long k = 1; k <= n; k++) a[j][k] = 0;
    }
    for (long long j = 1; j <= n; j++) {
      for (long long k = j; k <= n; k++) {
        u = j, v = k;
        if (j == k)
          w = 0;
        else
          w = (GA[j][k]) ? i : 1;
        a[u][u] += w, a[v][v] += w, a[u][v] -= w, a[v][u] -= w;
      }
    }
    for (long long j = 1; j <= n; j++) {
      for (long long k = 1; k <= n; k++) a[j][k] = (a[j][k] % mod + mod) % mod;
    }
    b[i][n + 1] = Guass();
    for (long long j = 1; j <= n; j++) b[i][j] = quick_power(i, j - 1);
  }
  for (long long i = 1; i <= n; i++) {
    for (long long j = 1; j <= n + 1; j++) a[i][j] = b[i][j];
  }
  get_ans();
  for (long long i = 1; i <= n; i++) cout << ans[i] << ' ';
  cout << endl;
  return 0;
}
