#include <bits/stdc++.h>
using namespace std;
struct ed {
  int nxt, to;
} e[400010 * 2];
int head[400010], tot, n, m, R[400010 * 2], A[400010 * 2], B[400010 * 2],
    fac[400010 * 2], _fac[400010 * 2], sz[400010];
void link(int u, int v) {
  e[tot].nxt = head[u];
  e[tot].to = v;
  head[u] = tot++;
}
void lnk(int u, int v) { link(u, v), link(v, u); }
void dfs(int u, int faa) {
  A[n]++;
  sz[u] = 1;
  for (int i = head[u]; i != -1; i = e[i].nxt) {
    int v = e[i].to;
    if (v == faa) continue;
    dfs(v, u);
    sz[u] += sz[v];
    A[sz[v]]--;
    if (A[sz[v]] < 0) A[sz[v]] += 924844033;
  }
  A[n - sz[u]]--;
  if (A[n - sz[u]] < 0) A[n - sz[u]] += 924844033;
}
int qp(int a, int b) {
  if (!b) return 1;
  if (a == 1) return a;
  int temp = qp(a, (b >> 1));
  temp = 1ll * temp * temp % 924844033;
  if (b & 1) temp = 1ll * temp * a % 924844033;
  return temp;
}
void NTT(int *a, int f) {
  for (int i = 0; i < n; ++i)
    if (i < R[i]) swap(a[i], a[R[i]]);
  for (int i = 1; i < n; i <<= 1) {
    int gn = qp(5, (924844033 - 1) / (i << 1));
    for (int j = 0; j < n; j += (i << 1)) {
      int g = 1;
      for (int k = 0; k < i; ++k, g = 1ll * g * gn % 924844033) {
        int x = a[j + k], y = 1ll * g * a[j + k + i] % 924844033;
        a[j + k] = (x + y) % 924844033;
        a[j + k + i] = (x - y + 924844033) % 924844033;
      }
    }
  }
  if (f == -1) {
    reverse(a + 1, a + n);
    int _n = qp(n, 924844033 - 2);
    for (int i = 0; i < n; ++i) a[i] = 1ll * a[i] * _n % 924844033;
  }
}
int main() {
  memset(head, -1, sizeof(head));
  scanf("%d", &n);
  for (int i = 1; i < n; ++i) {
    int u, v;
    scanf("%d%d", &u, &v), lnk(u, v);
  }
  dfs(1, 1);
  fac[1] = 1;
  fac[0] = 1;
  for (int i = 2; i <= n; ++i)
    fac[i] = 1ll * fac[i - 1] * i % 924844033,
    A[i] = 1ll * A[i] * fac[i] % 924844033;
  _fac[n] = qp(fac[n], 924844033 - 2);
  for (int i = n; i; --i) _fac[i - 1] = 1ll * _fac[i] * i % 924844033;
  for (int i = 1; i <= n; ++i) B[i] = _fac[n - i];
  m = n;
  int L = 0;
  for (n = 1; n <= (m << 1); n <<= 1) L++;
  for (int i = 0; i < n; ++i) R[i] = (R[i >> 1] >> 1) | ((i & 1) << (L - 1));
  NTT(A, 1), NTT(B, 1);
  for (int i = 0; i < n; ++i) A[i] = 1ll * A[i] * B[i] % 924844033;
  NTT(A, -1);
  for (int i = 1; i <= m; ++i)
    printf("%d\n", 1ll * A[m + i] * _fac[i] % 924844033);
  return 0;
}
