#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<vector>
#include<queue>
#include<algorithm>
#include<string>
#include<sstream>
#include<cctype>
#include<cmath>
#include<iomanip>
#include<map>
#include<stack>
#include<set>
#include<functional>
#define in(x) x=read()
#define qr read()
#define int ll
#define mp make_pair
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
namespace fastIO
{
    #define BUF_SIZE 100000
    bool IOerror=0;
    inline char nc()
	{
        static char buf[BUF_SIZE],*p1=buf+BUF_SIZE,*pend=buf+BUF_SIZE;
        if (p1==pend){
            p1=buf; pend=buf+fread(buf,1,BUF_SIZE,stdin);
            if (pend==p1){IOerror=1;return -1;}
        }
        return *p1++;
    }
    inline bool blank(char ch){return ch==' '||ch=='\n'||ch=='\r'||ch=='\t';}
    inline ll read()
	{
        bool sign=0; char ch=nc();ll x=0;
        for (;blank(ch);ch=nc());
        if (IOerror)return 0;
        if (ch=='-')sign=1,ch=nc();
        for (;ch>='0'&&ch<='9';ch=nc())x=x*10+ch-'0';
        if (sign)x=-x;
        return x;
    }
    #undef BUF_SIZE
};
using namespace fastIO;
#define mod 924844033
vector<int>e[1000010];
int siz[1000100],n,cnt[1000010],r[1000010],a[1000010],b[1000010],fac[1000010],finv[1000010],x[1000010],y[1000010],inv;
int qpow(int n,int k)
{
	int ans=1;
	while(k)
	{
		if(k&1)ans*=n,ans%=mod;
		n*=n,n%=mod;
		k>>=1;
	}
	return ans;
}
void dfs(int x,int pre)
{
	siz[x]=1;
	for(auto i:e[x])
	{
		if(i==pre)continue;
		dfs(i,x);
		siz[x]+=siz[i];
	}
	cnt[siz[x]]++;
	cnt[n-siz[x]]++;
}
#define mo(x) ((x>=mod)?(x-mod):x)
void ntt(int *a,int n,int op)
{
    for(int i=0;i<n;i++)
    {
    	if(i<r[i])swap(a[i],a[r[i]]);
	}
    for(int i=1;i<n;i<<=1)
    {
    	int w;
    	if(op==1)w=qpow(5,(mod-1)/(i<<1));
    	else w=qpow(qpow(5,(mod-1)/(i<<1)),mod-2);
    	for(int j=0;j<n;j+=i<<1)
    	{
    		int now=1;
			int *a0=a+j,*a1=i+a0;
    		for(int k=0;k<i;k++,now*=w,now%=mod)
    		{
    			int t=(*a1)*now%mod;
				(*a1)=mo(((*a0)-t)+mod);
				(*a0)=mo((*a0)+t);
				a0++,a1++;
			}
		}
	}
	if(op==-1)
	{
//		cout<<qpow(n,mod-2)<<'\n';
		for(int i=0;i<n;i++)a[i]*=inv,a[i]%=mod;
	}
}
inline void calc(int len,int l)
{
	for(int i=1;i<len;i++)r[i]=(r[i>>1]>>1)|((i&1)<<(l-1));
}
void mul(int *a,int *b,int n)
{
//	cout<<n<<'\n';
	inv=qpow(n,mod-2);
	for(int i=0;i<n/2;i++)x[i]=a[i],y[i]=b[i];
	ntt(x,n,1);
	ntt(y,n,1);
	for(int i=0;i<n;i++)x[i]*=y[i],x[i]%=mod;
	ntt(x,n,-1);
	for(int i=0;i<n;i++)a[i]=x[i];
	for(int i=0;i<n;i++)x[i]=y[i]=0;
}
signed main()
{
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	n=qr;
	for(int i=1;i<n;i++)
	{
		int x=qr,y=qr;
		e[x].push_back(y);
		e[y].push_back(x);
	}
	dfs(1,1);
	fac[0]=1;
	for(int i=1;i<=n;i++)fac[i]=fac[i-1]*i%mod;
	for(int i=0;i<n;i++)
	{
		cnt[i]=mod-cnt[i];
	}
	b[n]=finv[n]=qpow(fac[n],mod-2);
	for(int i=n-1;i>=0;i--)
	{
		b[i]=b[i+1]*(i+1)%mod;
		finv[i]=b[i];
	}
	cnt[n]=n;
	for(int i=0;i<=n;i++)
	{
		a[n-i]=cnt[i]*fac[i]%mod;
	}
	int len=1,l=0;
	while(len<=2*n)len*=2,l++;
	calc(len,l);
	mul(a,b,len);
	inv=qpow(len,mod-2);
    for(int i=1;i<=n;i++)
    {
        cout<<a[n-i]*finv[i]%mod<<'\n';
    }
	return 0;
}

Measured memory_bytes: 86016