#include <bits/stdc++.h>
using namespace std;
int mod = 1000000007LL;
long long large = 2000000000000000000LL;
void gcdE(long long a, long long b, long long& d, long long& x, long long& y) {
  if (!b) {
    d = a;
    x = 1;
    y = 0;
  } else {
    gcdE(b, a % b, d, y, x);
    y -= x * (a / b);
  }
}
long long inv(long long a, long long n) {
  long long d, x, y;
  gcdE(a, n, d, x, y);
  return d == 1 ? (x + n) % n : -1;
}
void print(vector<vector<long long> > a) {
  for (int i = 0; i < (int)a.size(); i++) {
    for (int j = 0; j < (int)a[i].size(); j++) {
      cout << a[i][j] << " ";
    }
    cout << endl;
  }
  return;
}
long long power(long long a, long long x) {
  long long ans = 1;
  while (x) {
    if (x & 1) {
      ans *= a;
      ans %= mod;
    }
    a *= a;
    a %= mod;
    x >>= 1;
  }
  return ans;
}
vector<vector<long long> > a(100, vector<long long>(100, 0));
long long cal(int sz) {
  long long ret = 1;
  int r = 0;
  for (int j = 0; j < sz; j++) {
    int rc = -1;
    for (int i = r; i < sz; i++) {
      if (a[i][j] != 0) {
        rc = i;
        break;
      }
    }
    if (rc == -1) continue;
    if (rc != r) {
      swap(a[r], a[rc]);
      ret = -ret;
    }
    for (int i = r + 1; i < sz; i++) {
      if (a[i][j] != 0) {
        a[r][j] = (a[r][j] %= mod + mod) % mod;
        long long div = power(a[r][j], mod - 2);
        long long t = div * a[i][j] % mod;
        for (int k = sz - 1; k >= j; k--) {
          a[i][k] = (a[i][k] - a[r][k] * t % mod) % mod;
        }
      }
    }
    r++;
  }
  for (int i = 0; i < sz; i++) {
    ret *= a[i][i];
    ret %= mod;
  }
  return (ret % mod + mod) % mod;
}
int main() {
  int n;
  cin >> n;
  vector<pair<int, int> > e;
  for (int i = 0; i < n - 1; i++) {
    int x, y;
    cin >> x >> y;
    x--;
    y--;
    e.push_back(pair<int, int>(x, y));
  }
  vector<long long> f(n + 1, 0);
  vector<vector<long long> > w(100, vector<long long>(100, 0));
  for (long long t = 1; t <= 1LL * n; t++) {
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        a[i][j] = 0;
        w[i][j] = 0;
        if (i != j) w[i][j] = 1;
      }
    }
    for (int i = 0; i < n - 1; i++) {
      int x = e[i].first;
      int y = e[i].second;
      w[x][y] = t;
      w[y][x] = t;
    }
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        if (i != j) a[i][j] = -w[i][j];
        a[i][i] += w[i][j];
      }
    }
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) a[i][j] = (a[i][j] % mod + mod) % mod;
    }
    f[t] = cal(n - 1);
  }
  vector<vector<long long> > b(n, vector<long long>(n + 1, 0));
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) b[i][j] = power(i + 1, j);
    b[i][n] = f[i + 1];
  }
  int r = 0;
  for (int j = 0; j < n; j++) {
    int rc = -1;
    for (int i = r; i < n; i++) {
      if (b[i][j] != 0) {
        rc = i;
        break;
      }
    }
    if (rc == -1) {
      cout << "error" << endl;
      return 0;
    }
    swap(b[r], b[rc]);
    long long div = power(b[r][j], mod - 2);
    for (int k = j; k <= n; k++) {
      b[r][k] *= div;
      b[r][k] %= mod;
    }
    for (int i = r + 1; i < n; i++) {
      if (b[i][j] != 0) {
        for (int k = n; k >= j; k--) {
          b[i][k] -= b[r][k] * b[i][j] % mod;
          b[i][k] = (b[i][k] % mod + mod) % mod;
        }
      }
    }
    r++;
  }
  for (int j = n - 1; j >= 0; j--) {
    for (int i = j - 1; i >= 0; i--) {
      if (b[i][j] != 0) {
        b[i][n] -= b[i][j] * b[j][n] % mod;
        b[i][n] %= mod;
        b[i][j] = 0;
      }
    }
  }
  for (int i = 0; i < n; i++) {
    cout << (b[i][n] % mod + mod) % mod << " ";
  }
  return 0;
}
