#include <iostream>
#include <vector>
#include <cstdio>
#include <algorithm>
#include <set>
#include <map>
#include <cassert>
#include <numeric>
#include <string>
#include <cstring>
#include <cmath>
using namespace std;

#ifdef LOCAL
	#define eprintf(...) fprintf(stderr, __VA_ARGS__)
#else
	#define eprintf(...) 42
#endif

typedef long long int int64;

const int MOD = 924844033;

void sadd(int &a, int b)
{
    a += b;
    if (a >= MOD)
        a -= MOD;
}
int add(int a, int b)
{
    sadd(a, b);
    return a;
}
void ssub(int &a, int b)
{
    a -= b;
    if (a < 0)
        a += MOD;
}
int sub(int a, int b)
{
    ssub(a, b);
    return a;
}
int mul(int a, int b)
{
    return (a * 1LL * b) % MOD;
}
void smul(int &a, int b)
{
    a = mul(a, b);
}
int fpow(int x, int n)
{
    if (n == 0) return 1;
    int a = fpow(x, n >> 1);
    a = mul(a, a);
    if (n & 1)
        a = mul(a, x);
    return a;
}

#ifdef LOCAL
const int LOG = 10;
#else
const int LOG = 20;
#endif
const int SZ = (1 << LOG);
int rev[SZ];
int w[SZ];

void initRev()
{
    for (int i = 1; i < SZ; i++)
    {
        int j = 0;
        while ((i & (1 << j)) == 0)
            j++;
        rev[i] = rev[i ^ (1 << j)] ^ (1 << (LOG - 1 - j));
    }
}

void init()
{
    initRev();

    int alpha = 2;
    int r = MOD - 1;
    while (r % 2 == 0)
         r >>= 1;
    
    while (fpow(alpha, (MOD - 1) / r) == 1 || fpow(alpha, (MOD - 1) / 2) == 1)
        alpha++;
    alpha = fpow(alpha, (MOD - 1) / (1 << LOG));

    w[0] = 1;
    for (int i = 1; i < SZ; i++)
        w[i] = mul(w[i - 1], alpha);
}


int _a[2][SZ];
void fft(int a[SZ])
{
    int t = 0, nt = 1;
    for (int i = 0; i < SZ; i++)
        _a[t][i] = a[rev[i]];
    
    for (int hlog = 0; (2 << hlog) <= SZ; hlog++)
    {
        //eprintf("hlog = %d\n", hlog);
        int hlen = (1 << hlog);
        for (int i = 0; i < SZ; i += 2 * hlen)
            for (int j = 0; j < hlen; j++)
            {
                int x = _a[t][i + j];
                int y = _a[t][i + j + hlen];
                _a[nt][i + j] = add(x, mul(y, w[j << (LOG - hlog - 1)]));
                _a[nt][i + j + hlen] = add(x, mul(y, w[(hlen + j) << (LOG - hlog - 1)]));
            }
        swap(t, nt);
    }
    for (int i = 0; i < SZ; i++)
        a[i] = _a[t][i];
}

int x[SZ];

void check()
{
    x[0] = x[1] = 1;
 
    fft(x);
    for (int i = 0; i < SZ; i++)
        x[i] = mul(x[i], x[i]);

    fft(x);

    int rSZ = fpow(SZ, MOD - 2);

    for (int i = 0; i < SZ; i++)
        x[i] = mul(x[i], rSZ);
    reverse(x + 1, x + SZ);

    for (int i = 0; i < 10; i++)
        eprintf("%d ", x[i]);
    eprintf("\n");
}

const int N = (int) 2e5 + 100;
vector <int> g[N];
int sz[N];

int ri[N], fact[N], rfact[N];

int b[SZ], c[SZ];

int C(int n, int k)
{
    if (k < 0 || k > n)
        return 0;
    return mul(fact[n], mul(rfact[k], rfact[n - k]));
}


int n;
int dfs(int v, int par)
{
    sz[v] = 1;
    for (int to : g[v])
    {
        if (to == par)
            continue;
        int nx = dfs(to, v);

        sadd(b[n], 1);
        ssub(b[nx], 1);
        ssub(b[n - nx], 1);

        sz[v] += nx;
    }
    return sz[v];
}

int main(int,  char **)
{
#ifdef LOCAL
	freopen("input.txt", "r", stdin);
//	freopen("output.txt", "w", stdout);
#endif

    init();

    //check();
    
    scanf("%d", &n);
    for (int i = 0; i < n - 1; i++)
    {
        int xa, xb;
        scanf("%d%d", &xa, &xb);
        xa--;
        xb--;
        g[xa].push_back(xb);
        g[xb].push_back(xa);
    }

    dfs(0, 0);

    fact[0] = rfact[0] = 1;
    ri[1] = 1;
    for (int i = 1; i <= n; i++)
    {
        fact[i] = mul(fact[i - 1], i);
        if (i != 1)
            ri[i] = sub(0, mul(ri[MOD % i], MOD / i));
        rfact[i] = mul(rfact[i - 1], ri[i]);

        if (mul(i, ri[i]) != 1) throw;
    }

    for (int i = 0; i <= n; i++)
        smul(b[i], fact[i]);
    
    //for (int i = 0; i <= n; i++)
    //    eprintf("%d ", b[i]); eprintf("\n");

    fft(b);

    for (int i = 0; i <= n; i++)
        c[i] = rfact[n - i];

    fft(c);

    for (int i = 0; i < SZ; i++)
        smul(b[i], c[i]);

    // (n - j) + i = n + (i - j)
    // i, j = i - k :  i - j + n = k + n


    fft(b);
    
    int rSZ = fpow(SZ, MOD - 2);
    for (int i = 0; i < SZ; i++)
        b[i] = mul(b[i], rSZ);
    reverse(b + 1, b + SZ);

    for (int i = 1; i <= n; i++)
    {
        int ans = b[n + i];
        smul(ans, rfact[i]);
        sadd(ans, C(n, i));
        printf("%d\n", ans);
    }

	return 0;
}




Measured memory_bytes: 50816