#include <bits/stdc++.h>
using namespace std;
inline int read() {
  char ch = getchar();
  int x = 0, f = 1;
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while ('0' <= ch && ch <= '9') {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  return x * f;
}
inline long long llread() {
  char ch = getchar();
  long long x = 0, f = 1;
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while ('0' <= ch && ch <= '9') {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  return x * f;
}
int a[110][110], b[110][110], G[110][110];
inline int Power(int x, int y) {
  int ret = 1;
  while (y) {
    if (y & 1) ret = 1ll * ret * x % 1000000007;
    x = 1ll * x * x % 1000000007;
    y >>= 1;
  }
  return ret;
}
inline int det(int n) {
  int res = 1, op = 1;
  for (int i = (1); i <= (n); ++i) {
    int w = i;
    for (int j = (i + 1); j <= (n); ++j) {
      if (a[j][i]) {
        w = j;
        break;
      }
    }
    if (w != i) op *= -1;
    for (int j = (i); j <= (n); ++j) {
      swap(a[i][j], a[w][j]);
    }
    for (int j = (i + 1); j <= (n); ++j) {
      int tmp = 1ll * a[j][i] * Power(a[i][i], 1000000007 - 2) % 1000000007;
      for (int k = (i); k <= (n); ++k) {
        a[j][k] -= 1ll * a[i][k] * tmp % 1000000007;
        if (a[j][k] < 0) a[j][k] += 1000000007;
      }
    }
    res = 1ll * res * a[i][i] % 1000000007;
  }
  return (res * op + 1000000007) % 1000000007;
}
inline void gauss(int n) {
  for (int i = (1); i <= (n); ++i) {
    for (int j = (1); j <= (n); ++j)
      if (i != j) {
        int tmp = 1ll * b[j][i] * Power(b[i][i], 1000000007 - 2) % 1000000007;
        for (int k = (i); k <= (n + 1); ++k) {
          b[j][k] -= 1ll * b[i][k] * tmp % 1000000007;
          if (b[j][k] < 0) b[j][k] += 1000000007;
        }
      }
  }
}
int main() {
  int n = read();
  for (int i = (1); i <= (n - 1); ++i) {
    int u = read(), v = read();
    G[u][v] = G[v][u] = 1;
  }
  for (int k = (1); k <= (n); ++k) {
    for (int i = (1); i <= (n); ++i)
      for (int j = (1); j <= (n); ++j) {
        a[i][j] = 0;
      }
    for (int i = (1); i <= (n); ++i)
      for (int j = (1); j <= (n); ++j)
        if (i != j) {
          if (G[i][j]) {
            a[i][j] -= k;
            a[i][i] += k;
          } else {
            a[i][j]--;
            a[i][i]++;
          }
        }
    for (int i = (1); i <= (n); ++i) {
      for (int j = (1); j <= (n); ++j) {
        if (a[i][j] < 0) a[i][j] += 1000000007;
      }
    }
    b[k][1] = 1;
    for (int i = (2); i <= (n); ++i) {
      b[k][i] = 1ll * b[k][i - 1] * k % 1000000007;
    }
    b[k][n + 1] = det(n - 1);
  }
  gauss(n);
  for (int i = (1); i <= (n); ++i) {
    printf("%d ",
           1ll * b[i][n + 1] * Power(b[i][i], 1000000007 - 2) % 1000000007);
  }
}
