/************************************************
 * Au: Hany01
 * Date: Jan 17th, 2019
 * Prob: agc005f
 * Email: hany01dxx@gmail.com & hany01@foxmail.com
 * Inst: Yali High School
************************************************/

#include<bits/stdc++.h>

using namespace std;

typedef long long LL;
typedef unsigned long long ULL;
typedef long double LD;
typedef pair<int, int> PII;
#define Rep(i, j) for (register int i = 0, i##_end_ = (j); i < i##_end_; ++ i)
#define For(i, j, k) for (register int i = (j), i##_end_ = (k); i <= i##_end_; ++ i)
#define Fordown(i, j, k) for (register int i = (j), i##_end_ = (k); i >= i##_end_; -- i)
#define Set(a, b) memset(a, b, sizeof(a))
#define Cpy(a, b) memcpy(a, b, sizeof(a))
#define X first
#define Y second
#define PB(a) push_back(a)
#define MP(a, b) make_pair(a, b)
#define SZ(a) ((int)(a).size())
#define ALL(a) a.begin(), a.end()
#define INF (0x3f3f3f3f)
#define INF1 (2139062143)
#define debug(...) fprintf(stderr, __VA_ARGS__)
#define y1 WoXiHuanNiA

template <typename T> inline bool chkmax(T &a, T b) { return a < b ? a = b, 1 : 0; }
template <typename T> inline bool chkmin(T &a, T b) { return b < a ? a = b, 1 : 0; }
template <typename T> inline T read() {
	register T _, __; register char c_;
    for (_ = 0, __ = 1, c_ = getchar(); c_ < '0' || c_ > '9'; c_ = getchar()) if (c_ == '-') __ = -1;
    for ( ; c_ >= '0' && c_ <= '9'; c_ = getchar()) _ = (_ << 1) + (_ << 3) + (c_ ^ 48);
    return _ * __;
}
//EOT


const int MAXN = 2e5 + 5, MOD = 924844033, g0 = 5;
int ig0, powg[MAXN << 2], ipowg[MAXN << 2], rev[MAXN << 2];

namespace Operator {
	int fpm(int a, int b = MOD - 2) {
		int ans = 1;
		for ( ; b; b >>= 1, a = (LL)a * a % MOD)
			if (b & 1) ans = (LL)ans * a % MOD;
		return ans;
	}
	int add(int x, int y) { return (x += y) >= MOD ? x - MOD : x; }
	int sub(int x, int y) { return add(x, MOD - y); }
	void inc(int &x, int y) { if ((x += y) >= MOD) x -= MOD; }
	void dec(int &x, int y) { inc(x, MOD - y); }
}
using namespace Operator;

void NTT(int *a, int n, int ty) {
	Rep(i, n) if (rev[i] < i) swap(a[i], a[rev[i]]);
	for (int i = 2, p = 1; i <= n; p = i, i <<= 1) {
		int wn = ty == 1 ? powg[i] : ipowg[i];
		for (int j = 0; j < n; j += i) {
			int w = 1;
			Rep(k, p) {
				int x = a[j + k], y = (LL)a[j + k + p] * w % MOD;
				a[j + k] = add(x, y), a[j + k + p] = sub(x, y);
				w = (LL)w * wn % MOD;
			}
		}
	}
	if (ty == -1) {
		int inv = fpm(n);
		Rep(i, n) a[i] = (LL)a[i] * inv % MOD;
	}
}

int n;

int beg[MAXN], v[MAXN << 1], nex[MAXN << 1], e = 1;
void addedge(int uu, int vv) {
	v[++ e] = vv, nex[e] = beg[uu], beg[uu] = e;
}

int b[MAXN];
int getsize(int u, int pa) {
	int sz = 1;
	for (int i = beg[u]; i; i = nex[i])
		if (v[i] != pa) sz += getsize(v[i], u);
	if (pa) -- b[sz], -- b[n - sz];
	return sz;
}

int fac[MAXN], ifac[MAXN];
void getfactorial() {
	fac[0] = 1;
	For(i, 1, n) fac[i] = (LL)fac[i - 1] * i % MOD;
	ifac[n] = fpm(fac[n]);
	Fordown(i, n, 1) ifac[i - 1] = (LL)ifac[i] * i % MOD;
}

void initialize() {
	For(i, 2, n = read<int>()) {
		int u = read<int>(), v = read<int>();
		addedge(u, v), addedge(v, u);
	}
	getsize(1, 0), b[n] = n;
	getfactorial();
}

int f[MAXN << 2], g[MAXN << 2];
void solve() {
	For(i, 0, n) {
		f[i] = (LL)add(b[i], MOD) * fac[i] % MOD;
		g[n - i] = ifac[i];
	}
	int N, pt;
	for (N = 1, pt = 0; N <= (n << 1); ++ pt, N <<= 1);
	ig0 = fpm(g0);
	For(i, 1, pt) {
		powg[1 << i] = fpm(g0, (MOD - 1) >> i);
		ipowg[1 << i] = fpm(ig0, (MOD - 1) >> i);
	}
	Rep(i, N) rev[i] = (rev[i >> 1] >> 1) | ((i & 1) << (pt - 1));
	NTT(f, N, 1), NTT(g, N, 1);
	Rep(i, N) f[i] = (LL)f[i] * g[i] % MOD;
	NTT(f, N, -1);
	For(i, 1, n) printf("%lld\n", (LL)f[i + n] * ifac[i] % MOD);
}

int main() {
#ifdef hany01
	freopen("agc005f.in", "r", stdin);
	freopen("agc005f.out", "w", stdout);
#endif

	initialize();

	solve();

	return 0;
}

Measured memory_bytes: 30592