#include <bits/stdc++.h>
#define xx first
#define yy second
#define mp make_pair
#define pb push_back
#define mset(x, y) memset(x, y, sizeof x)
#define mcpy(x, y) memcpy(x, y, sizeof x)
using namespace std;

typedef long long LL;
typedef pair <int, int> pii;

inline int Read()
{
	int x = 0, f = 1, c = getchar();
	for (; !isdigit(c); c = getchar())
		if (c == '-')
			f = -1;
	for (;  isdigit(c); c = getchar())
		x = x * 10 + c - '0';
	return x * f;
}

const int MAXN = 524290;
const int MAXM = 20;
const int mod = 924844033;
const int G = 5;

namespace FFT
{
	int wn[MAXM], R[MAXN], L, n;

	inline int Qow(int x, int y)
	{
		int ret = 1;
		for (; y; y >>= 1, x = 1LL * x * x % mod)
			if (y & 1)
				ret = 1LL * ret * x % mod;
		return ret;
	}

	inline int Inv(int x)
	{
		return Qow(x, mod - 2);
	}

	inline void Ini(int len)
	{
		for (n = 1, L = 0; n < len; n <<= 1, L ++);
		for (int i = 1; i < n; i ++)
			R[i] = (R[i >> 1] >> 1) | ((i & 1) << L - 1);
		wn[0] = Qow(G, mod - 1 >> L);
		for (int i = 1; i < L; i ++)
			wn[i] = 1LL * wn[i - 1] * wn[i - 1] % mod;
	}

	inline void Ini_Inv()
	{
		wn[0] = Inv(wn[0]);
		for (int i = 1; i < L; i ++)
			wn[i] = 1LL * wn[i - 1] * wn[i - 1] % mod;
	}

	inline void FFT(int *x)
	{
		for (int i = 0; i < n; i ++)
			if (i < R[i])
				swap(x[i], x[R[i]]);
		for (int i = 1, l = L - 1; i < n; i <<= 1, l --)
			for (int j = 0; j < n; j += i << 1)
				for (int k = 0, w = 1, u, v; k < i; k ++, w = 1LL * w * wn[l] % mod)
					u = x[j + k], v = 1LL * x[i + j + k] * w % mod, x[j + k] = (u + v) % mod, x[i + j + k] = (u + mod - v) % mod;
	}

	inline void Cpy(int *x, int n, int *y, int m)
	{
		for (int i = 0; i < n; i ++)
			y[i] = x[i];
		for (int i = n; i < m; i ++)
			y[i] = 0;
	}

	inline void Mul(int *a, int n, int *b, int m, int *ret)
	{
		static int x[MAXN], y[MAXN];
		Ini(n + m - 1);
		Cpy(a, n, x, FFT::n); Cpy(b, m, y, FFT::n);
		FFT(x); FFT(y);
		for (int i = 0; i < FFT::n; i ++)
			x[i] = 1LL * x[i] * y[i] % mod;
		Ini_Inv();
		FFT(x);
		int v = Inv(FFT::n);
		for (int i = 0; i < FFT::n; i ++)
			ret[i] = 1LL * v * x[i] % mod;
	}
}

int n, fac[MAXN], inv[MAXN], a[MAXN], b[MAXN], siz[MAXN], ans[MAXN];
vector <int> adj[MAXN];

inline void Dfs(int x, int p)
{
	siz[x] = 1;
	for (auto y : adj[x])
		if (y ^ p)
			Dfs(y, x), siz[x] += siz[y];
	if (x ^ 1)
		a[siz[x]] ++, a[n - siz[x]] ++;
}

inline int C(int x, int y)
{
	return 1LL * fac[x] * inv[y] % mod * inv[x - y] % mod;
}

int main()
{
#ifdef wxh010910
	freopen("data.in", "r", stdin);
#endif
	n = Read(), fac[0] = fac[1] = inv[0] = inv[1] = 1;
	for (int i = 1, x, y; i < n; i ++)
		x = Read(), y = Read(), adj[x].pb(y), adj[y].pb(x);
	for (int i = 2; i <= n; i ++)
		fac[i] = 1LL * fac[i - 1] * i % mod, inv[i] = 1LL * (mod - mod / i) * inv[mod % i] % mod;
	for (int i = 2; i <= n; i ++)
		inv[i] = 1LL * inv[i - 1] * inv[i] % mod;
	Dfs(1, 0);
	for (int i = 1; i < n; i ++)
		a[i] = 1LL * a[i] * fac[i] % mod;
	for (int i = 0; i < n; i ++)
		b[i] = inv[n - i - 1];
	FFT::Mul(a, n, b, n, a);
	for (int i = 1; i < n; i ++)
		ans[i] = 1LL * a[i + n - 1] * inv[i] % mod;
	for (int i = 1; i <= n; i ++)
		printf("%d\n", (1LL * n * C(n, i) % mod - ans[i] + mod) % mod);
	return 0;
}


Measured memory_bytes: 44416