#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using uint = unsigned int;
template <class T>
using V = vector<T>;
template <class T>
using VV = V<V<T>>;
const int G = 5;
const int MD = 9248440833;
const int MN = 200010;
const int MB = 19;
int n;
V<int> g[MN];
int cnt[MN];
int rev[1 << MB], fac[MN], ifac[MN];
int pow_mod(int x, int n) {
  int r = 1;
  while (n) {
    if (n & 1) r = ll(r) * x % MD;
    x = ll(x) * x % MD;
    n >>= 1;
  }
  return r;
}
int dfs(int v, int p) {
  int sz = 1;
  for (auto &u : g[v]) {
    if (u == p) continue;
    int csz = dfs(u, v);
    sz += csz;
    cnt[csz]++;
  }
  cnt[n - sz]++;
  return sz;
}
void first() {
  fac[0] = 1;
  for (int i = 1; i < MN; i++) fac[i] = ll(i) * fac[i - 1] % MD;
  for (int i = 0; i < MN; i++) ifac[i] = pow_mod(fac[i], MD - 2);
  for (int i = 0; i < (1 << MB); i++) {
    rev[i] = (rev[i >> 1] >> 1) | ((i & 1) << (MB - 1));
  }
}
void ntt(V<int> &a) {
  int n = int(a.size());
  int s = MB - __builtin_ctz(n);
  for (int i = 0; i < n; i++) {
    int r = rev[i] >> s;
    if (i < r) swap(a[i], a[r]);
  }
  V<int> roots(n / 2);
  roots[0] = 1;
  for (int k = 1; k < n; k *= 2) {
    ll r = pow_mod(G, (MD - 1) / (2 * k));
    for (int i = 0; i < k - 1; i++) {
      roots[i + 1] = r * roots[i] % MD;
    }
    for (int i = 0; i < n; i += 2 * k) {
      for (int j = 0; j < k; j++) {
        int l = a[i + j];
        int r = ll(a[i + j + k]) * roots[j] % MD;
        a[i + j] = (l + r) % MD;
        a[i + j + k] = (l - r + MD) % MD;
      }
    }
  }
}
V<int> pmul(V<int> a, V<int> b) {
  int A = int(a.size()), B = int(b.size());
  int n = 1;
  while (n < A + B - 1) n *= 2;
  a.resize(n);
  ntt(a);
  b.resize(n);
  ntt(b);
  ll in = pow_mod(n, MD - 2);
  for (int i = 0; i < n; i++) {
    a[i] = in * a[i] % MD * b[i] % MD;
  }
  reverse(a.begin() + 1, a.end());
  ntt(a);
  a.resize(A + B - 1);
  return a;
}
int C(int x, int y) {
  if (x < y || x < 0 || y < 0) return 0;
  return ll(fac[x]) * ifac[y] % MD * ifac[x - y] % MD;
}
int main() {
  first();
  scanf("%d", &n);
  for (int i = 0; i < n - 1; i++) {
    int a, b;
    scanf("%d %d", &a, &b);
    a--;
    b--;
    g[a].push_back(b);
    g[b].push_back(a);
  }
  dfs(0, -1);
  V<int> x(n + 1), y(n + 1);
  for (int i = 0; i <= n; i++) {
    x[i] = ll(fac[i]) * cnt[i] % MD;
  }
  for (int i = 0; i <= n; i++) {
    y[i] = ifac[n - i];
  }
  x = pmul(x, y);
  for (int i = 1; i <= n; i++) {
    int ans = ll(n) * C(n, i) % MD - ll(x[n + i]) * ifac[i] % MD;
    if (ans < 0) ans += MD;
    printf("%d\n", ans);
  }
  return 0;
}
