#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define re(i,a,b) for(int i=(a);i<(b);i++)
#define repd(i,a,b) for(int i=(a);i>=(b);i--)
#define run(v) for(int k=head[v];k;k=e[k].ne)
#define v e[k].t
#define clr(a) memset(a,0,sizeof(a));
#define il inline
#define sz(a) ((int)a.size())
#define all(a) a.begin(),a.end()
#define mp make_pair
#define pb push_back 
#define w1 first
#define w2 second
#define adm(a,b,c) {a=a+b;if(a>=c)a-=c;else if(a<0)a+=c;}
typedef pair<int,int> pa;
typedef long long ll;typedef long double ld;typedef unsigned long long ull;
const int N=10e5+5,M=5e7+5,INF=1e9,mod=924844033;
const ll linf=1e18;const double eps=1e-8,pi=acos(-1);
il int gmin(int &a,int b){if(a>b)a=b;}il ll gmin(ll &a,ll b){if(a>b)a=b;}il int gmax(int &a,int b){if(a<b)a=b;}il ll gmax(ll &a,ll b){if(a<b)a=b;}
il void read(ll&x){ll f=1,t=0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){t=t*10+ch-'0';ch=getchar();}x=t*f;}il ll read(ll&x,ll&y){read(x);read(y);}
il void read(int&x){int f=1,t=0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){t=t*10+ch-'0';ch=getchar();}x=t*f;}il int read(int&x,int&y){read(x);read(y);}
il void read(int&a,int&b,int&c){read(a);read(b);read(c);}il void read(ll&a,ll&b,ll&c){read(a);read(b);read(c);}
il int read(){int x;read(x);return x;}
il ll qpow(ll a,ll b,ll p){ll ret=1;for(;b;b>>=1,a=a*a%p)if(b&1)ret=ret*a%p;return ret;}il ll qpow(ll a,ll b){ll ret=1;for(;b;b>>=1,a=a*a%mod)if(b&1)ret=ret*a%mod;return ret;}
il ll qmul(ll a,ll b,ll p){ll ret=0;for(;b;b>>=1,a=(a<<1)%p)if(b&1)adm(ret,a,p);return ret;}il ll qmul(ll a,ll b){ll ret=0;for(;b;b>>=1,a=(a<<1)%mod)if(b&1)adm(ret,a,mod);return ret;}
il void judge(){
	freopen("data.in","r",stdin);
	freopen("data.out","w",stdout);}
il void gen(){freopen("data.in","w",stdout);}
int n;
struct edge{int t,ne;}e[N];
int head[N],cnt;
void adde(int a,int b){
	e[++cnt]=(edge){b,head[a]};head[a]=cnt;
}
ll siz[N],a[N];
void dfs(int x,int f){
	siz[x]=1;
	run(x)if(v!=f){dfs(v,x);siz[x]+=siz[v];}
}
ll fac[N],ifac[N];
il ll C(ll n,ll m){
	if(n<0||m<0||n<m)return 0;
	return fac[n]*ifac[m]%mod*ifac[n-m]%mod;
}const int G=5;
ll A[N],B[N],D[N],rev[N];
void ntt(ll*a,int n,int opt){
	int l=0;for(int o=1;o<n;o<<=1)l++;
	re(i,0,n)rev[i]=(rev[i>>1]>>1)|((i&1)<<(l-1));
	re(i,0,n)if(i>rev[i])swap(a[i],a[rev[i]]);
	for(int i=1;i<n;i<<=1){
		ll wn=qpow(G,(mod-1)/(2*i),mod);if(opt==-1)wn=qpow(wn,mod-2,mod);
		for(int j=0;j<n;j+=i+i){
			ll w=1;re(k,0,i){
				ll x=a[j+k],y=1ll*a[j+k+i]*w%mod;
				a[j+k]=(x+y)%mod;a[j+k+i]=(x-y+mod)%mod;
				w=1ll*w*wn%mod;
			}
		}
	}if(opt==-1){
		ll iv=qpow(n,mod-2,mod);
		re(i,0,n)a[i]=1ll*a[i]*iv%mod;
	}
}
int main(){
	//judge();	
	/*
	int x=924844033-1;
	rep(g,2,50){
		int ok=1;rep(i,2,x){
			if(x%i==0)if(qpow(g,(mod-1)/i,mod)==1){ok=0;break;}
			while(x%i==0)x/=i;
		}if(ok){return printf("%d",g),0;}
	}//g=5*/
	read(n);rep(i,1,n-1){int a,b;read(a,b);adde(a,b);adde(b,a);}
	dfs(1,0);
	rep(i,2,n)a[siz[i]]++,a[n-siz[i]]++;
	fac[0]=1;
	rep(i,1,n)fac[i]=fac[i-1]*i%mod;
	ifac[n]=qpow(fac[n],mod-2,mod);
	repd(i,n-1,0)ifac[i]=ifac[i+1]*(i+1)%mod;
	rep(i,0,n)A[i]=1ll*a[i]*fac[i]%mod,B[i]=ifac[n-i];
	//rep(i,0,n)rep(j,0,n)(D[i+j]+=1ll*A[i]*B[j]%mod)%=mod;
	int len=1;while(len<=n+n)len<<=1;
	ntt(A,len,1);ntt(B,len,1);
	rep(i,0,len)D[i]=1ll*A[i]*B[i]%mod;
	ntt(D,len,-1);
	rep(k,1,n){
		ll res=C(n,k)*n%mod;
		res=(res+mod-D[k+n]*ifac[k]%mod)%mod;
		cout<<res<<endl;
	}
}

Measured memory_bytes: 55168