#include <bits/stdc++.h>
using namespace std;
const int N = 800400;
const long long mo = 924844033;
void read(int &hy) {
  hy = 0;
  char cc = getchar();
  while (cc < '0' || cc > '9') cc = getchar();
  while (cc >= '0' && cc <= '9') {
    cc = getchar();
    hy = (hy << 3) + (hy << 1) + cc - '0';
  }
}
int nn;
int s[N];
int to[N], nex[N], head[N], cnt;
int n, rev[N];
long long num[N], I[N], jc[N], Ijc[N], ans[N];
void add(int u, int v) {
  to[++cnt] = v;
  nex[cnt] = head[u];
  head[u] = cnt;
}
void dfs(int x) {
  s[x] = 1;
  for (int h = head[x]; h; h = nex[h])
    if (!s[to[h]]) {
      dfs(to[h]);
      s[x] += s[to[h]];
      num[s[to[h]]]++;
      num[nn - s[to[h]]]++;
    }
}
long long cheng(long long a, long long b) {
  long long res = 1;
  for (; b; b >>= 1, a = a * a % mo)
    if (b & 1) res = res * a % mo;
  return res;
}
void Init(int lim) {
  int k = -1;
  n = 1;
  while (n < lim) n <<= 1, k++;
  for (int i = 1; i < n; i++) rev[i] = (rev[i >> 1] >> 1) | ((i & 1) << k);
  I[1] = 1;
  Ijc[0] = jc[0] = 1;
  for (int i = 2; i <= n; i++) I[i] = (mo - mo / i) * I[mo % i] % mo;
  for (int i = 1; i <= n; i++)
    jc[i] = jc[i - 1] * i % mo, Ijc[i] = Ijc[i - 1] * I[i] % mo;
}
void ntt(long long *a, int ops) {
  for (int i = 0; i < n; i++)
    if (i < rev[i]) swap(a[i], a[rev[i]]);
  for (int l = 2; l <= n; l <<= 1) {
    int m = l >> 1;
    long long wn =
        (ops) ? cheng(5, (mo - 1) / l) : cheng(5, mo - 1 - (mo - 1) / l);
    for (int i = 0; i < n; i += l) {
      long long w = 1;
      for (int k = 0; k < m; k++) {
        long long t = a[i + k + m] * w % mo;
        a[i + k + m] = (a[i + k] - t + mo) % mo;
        a[i + k] = (a[i + k] + t) % mo;
        w = w * wn % mo;
      }
    }
  }
  if (!ops)
    for (int i = 0; i < n; i++) a[i] = a[i] * I[n] % mo;
}
int main() {
  cin >> nn;
  for (int i = 1; i < nn; i++) {
    int u, v;
    read(u);
    read(v);
    add(u, v);
    add(v, u);
  }
  dfs(1);
  for (int i = 1; i < nn; i++) num[i] = mo - num[i];
  num[nn] = nn;
  Init(2 * nn + 1);
  for (int i = 0; i <= nn; i++) num[i] = num[i] * jc[i] % mo;
  for (int i = 1; i <= nn; i++) ans[i] = Ijc[nn - i];
  ntt(num, 1);
  ntt(ans, 1);
  for (int i = 0; i < n; i++) ans[i] = num[i] * ans[i] % mo;
  ntt(ans, 0);
  for (int i = 1; i <= nn; i++) printf("%I64d\n", ans[nn + i] * Ijc[i] % mo);
  return 0;
}
