// start fold
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
#include<set>
#include<map>
#include<queue>
#include<bitset>
using namespace std;
#define ri register int
#define il inline
#define LL long long
#define uint unsigned int
#define ull unsigned long long
#define solid const auto &
#define pb push_back
#define mp make_pair
#define pii pair<int,int>
#define pll pair<LL,LL>
#define fi first
#define se second
#define gm int mid((l+r)/2)
#define enter putchar('\n')
#define rd() ({ri t;in(t);t;})
#define Size(x) ((int)x.size())
#define mem(x,y) memset(x,y,sizeof(x))
template<class T>il void in(T &x)
{
	x=0; short f=1; char c=getchar();
	while(c<'0'||c>'9')
	{
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9') x=x*10+(c^'0'),c=getchar();
	x*=f;
}
template<class T>il void out(T x,const char c='\n')
{
	static short st[30]; short m=0;
	if(x<0) putchar('-'),x=-x;
	do st[++m]=x%10,x/=10; while(x);
	while(m) putchar(st[m--]|'0');
	putchar(c);
}
template<class T,class ...Args>il void in(T &x,Args &...args) {in(x); in(args...);}
template<class T,class ...Args>il void out(const T &x,const Args &...args) {out(x,' '); out(args...);}
template<class T>il void prt(T a[],int n) {for(ri i=0; i<n; ++i) out(a[i],' '); enter;}
template<class T>il void clr(T a[],int n) {memset(a,0,sizeof(T)*n);}
template<class T>il void clr(T *a,T *b) {memset(a,0,sizeof(T)*(b-a));}
template<class T>il bool ckmax(T &a,const T &b) {return a<b?a=b,1:0;}
template<class T>il bool ckmin(T &a,const T &b) {return a>b?a=b,1:0;}
namespace MOD_CALC
{
const int md=924844033;
il int add(const int a,const int b) {return a+b>=md?a+b-md:a+b;}
il int sub(const int a,const int b) {return a-b<0?a-b+md:a-b;}
il int mul(const int a,const int b) {return (LL)a*b%md;}
il void inc(int &a,const int b) {(a+=b)>=md?a-=md:0;}
il void dec(int &a,const int b) {(a-=b)<0?a+=md:0;}
il int qpow(int a,int b) {int r=1; for(; b; b>>=1,a=mul(a,a)) if(b&1) r=mul(r,a); return r;}
il int mdinv(const int a) {return qpow(a,md-2);}
} using namespace MOD_CALC;
namespace i207M
{
// end fold
#define N 200005*4
const int inv5=mdinv(5);
int r[N];
void dft(int f[],int n,int op)
{
	op=(op==1?5:inv5);
	for(ri i=0; i<n; ++i) if(i<r[i]) swap(f[i],f[r[i]]);
	for(ri p=2; p<=n; p<<=1)
	{
		int len=p>>1,nx=qpow(op,(md-1)/p);
		for(ri k=0; k<n; k+=p)
		{
			int w=1;
			for(ri i=k; i<k+len; ++i)
			{
				int t=mul(w,f[i+len]);
				f[i+len]=sub(f[i],t); f[i]=add(f[i],t);
				w=mul(w,nx);
			}
		}
	}
	if(op==inv5)
	{
		int invn=mdinv(n);
		for(ri i=0; i<n; ++i) f[i]=mul(f[i],invn);
	}
}
il int pre(int n)
{
	int m=1; while(m<n) m<<=1;
	for(ri i=0,hb=m>>1; i<m; ++i) r[i]=(r[i>>1]>>1)|((i&1)?hb:0);
	return m;
}
int n;
vector<int>E[N];
il void adde(int uu,int vv)
{
	E[uu].pb(vv),E[vv].pb(uu);
}
int sz[N],buk[N];
void dfs(int x,int _fa)
{
	sz[x]=1;
	for(solid v:E[x])
	{
		if(v==_fa) continue;
		dfs(v,x),sz[x]+=sz[v];
		++buk[sz[v]];
	}
	++buk[n-sz[x]];
}
int fac[N],ifac[N];
il int C(int n,int m)
{
	if(n<m) return 0;
	return mul(fac[n],mul(ifac[m],ifac[n-m]));
}
int a[N],b[N];
signed main()
{
#ifdef M207
	freopen("in.in","r",stdin);
	// freopen("out.out","w",stdout);
#endif
	in(n);
	for(ri i=1; i<n; ++i) adde(rd(),rd());
	dfs(1,0);
	fac[0]=1;
	for(ri i=1; i<=n; ++i) fac[i]=mul(fac[i-1],i);
	ifac[n]=mdinv(fac[n]);
	for(ri i=n; i>=1; --i) ifac[i-1]=mul(ifac[i],i);
	for(ri i=0; i<=n; ++i) a[n-i-1]=mul(fac[i],buk[i]);
	for(ri i=0; i<=n; ++i) b[i]=ifac[i];
	int m=pre(n<<1);
	dft(a,m,1),dft(b,m,1);
	for(ri i=0; i<m; ++i) a[i]=mul(a[i],b[i]);
	dft(a,m,-1);
	for(ri i=1; i<=n; ++i)
	{
		int ans=sub(mul(C(n,i),n),mul(a[n-i-1],ifac[i]));
		out(ans);
	}
	return 0;
}
// start fold
}
signed main()
{
	i207M::main();
	return 0;
}
// end fold


Measured memory_bytes: 53888