//Relive your past life.
//Face your demons.
//The past is never dead,it is not even past.
//The memories are not only the key to the past but...also to the future.
//coded in Rusty Lake
#include<cmath>
#include<math.h>
#include<ctype.h>
#include<algorithm>
#include<bitset>
#include<cassert>
#include<cctype>
#include<cerrno>
#include<cfloat>
#include<ciso646>
#include<climits>
#include<clocale>
#include<complex>
#include<csetjmp>
#include<csignal>
#include<cstdarg>
#include<cstddef>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<cwchar>
#include<cwctype>
#include<deque>
#include<exception>
#include<fstream>
#include<functional>
#include<iomanip>
#include<ios>
#include<iosfwd>
#include<iostream>
#include<istream>
#include<iterator>
#include<limits>
#include<list>
#include<locale>
#include<map>
#include<memory>
#include<new>
#include<numeric>
#include<ostream>
#include<queue>
#include<set>
#include<sstream>
#include<stack>
#include<stdexcept>
#include<streambuf>
#include<string>
#include<typeinfo>
#include<utility>
#include<valarray>
#include<vector>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#define ll   long long
#define pb   push_back
#define mp   make_pair
#define orz  924844033ll
#define C    pair<long double,long double>
#define X    first
#define Y    second
using namespace std;
struct MTT{
    int n,m,A[524444],B[524444],ans[524444];
    ll P;
    C w[524444],w2[524444],a[524444],b[524444],a2[524444],b2[524444];
    C mul(C &x,C &y){
        return mp(x.X*y.X-x.Y*y.Y,x.X*y.Y+x.Y*y.X);
    }
    void gen(){
        long double pi=acos(-1.0);
        w2[0]=w[0]=mp(1.0,0.0);
        for(int i=1;i<n;++i)w2[n-i]=w[i]=mp(cos(2.0*i*pi/n),sin(2.0*i*pi/n));
    }
    void fft(C *a,C *w){
        for(int i=0,j=0;i<n;++i){
            if(i<j)swap(a[i],a[j]);
            for(int k=n>>1;(j^=k)<k;k>>=1);
        }
        for(int i=2;i<=n;i<<=1){
            for(int j=0;j<n;j+=i){
                for(int k=0;k<(i>>1);++k){
                    int l=j+k,r=l+(i>>1);
                    C o=mul(a[r],w[n/i*k]);
                    a[r].X=a[l].X-o.X,a[r].Y=a[l].Y-o.Y,a[l].X+=o.X,a[l].Y+=o.Y;
                }
            }
        }
    }
    void mtt(){
        gen();
        for(int i=0;i<n;++i)a[i]=mp(A[i]&32767,A[i]>>15),b[i]=mp(B[i]&32767,B[i]>>15);
        fft(a,w),fft(b,w);
        for(int i=0;i<n;++i){
            int j=(i?n-i:0);
            C aa,bb,cc,dd,ac,ad,bc,bd;
            aa=mp((a[i].X+a[j].X)*0.5,(a[i].Y-a[j].Y)*0.5);
            bb=mp((a[i].Y+a[j].Y)*0.5,(a[j].X-a[i].X)*0.5);
            cc=mp((b[i].X+b[j].X)*0.5,(b[i].Y-b[j].Y)*0.5);
            dd=mp((b[i].Y+b[j].Y)*0.5,(b[j].X-b[i].X)*0.5);
            ac=mul(aa,cc),ad=mul(aa,dd),bc=mul(bb,cc),bd=mul(bb,dd);
            a2[j]=mp(ac.X-ad.Y,ac.Y+ad.X),b2[j]=mp(bc.X-bd.Y,bc.Y+bd.X);
        }
        fft(a2,w),fft(b2,w);
        for(int i=0;i<n;++i){
            ll aa,bb,cc,dd;
            aa=a2[i].X/n+0.5,bb=a2[i].Y/n+0.5,cc=b2[i].X/n+0.5,dd=b2[i].Y/n+0.5;
            aa%=P,bb%=P,cc%=P,dd%=P;
            ll o=aa+(bb+cc)*32768ll%P+dd*32768ll%P*32768ll%P;
            o=(o%P+P)%P;
            ans[i]=o;
        }
    }
    void solve(){
        for(int i=0;i<=n;++i)A[i]=(A[i]%P+P)%P;
        for(int i=0;i<=m;++i)B[i]=(B[i]%P+P)%P;
        m+=n,n=1;
        while(n<=m)n<<=1;
        mtt();
    }
}_;
ll fpower(ll x,int k=orz-2){
    ll ans=1;
    while(k){
        if(k&1)ans=ans*x%orz;
        x=x*x%orz,k>>=1;
    }
    return ans;
}
ll jc[200005],njc[200005];
int n,s[200005],cnt[200005];
vector<int> v[200005];
void dfs(int x,int y){
    s[x]=1;
    for(int i=0;i<v[x].size();++i){
        if(v[x][i]==y) continue;
        dfs(v[x][i],x);
        ++cnt[s[v[x][i]]];
        s[x]+=s[v[x][i]];
    }
    ++cnt[n-s[x]];
}
int main(){
    _.P=orz;
    scanf("%d",&n);
    for(int i=1;i<n;++i){
        int x,y;
        scanf("%d%d",&x,&y);
        v[x].pb(y),v[y].pb(x);
    }
    dfs(1,0);
    jc[0]=1;
    for(int i=1;i<=n;++i)jc[i]=jc[i-1]*i%orz;
    njc[n]=fpower(jc[n]);
    for(int i=n;i;--i)njc[i-1]=njc[i]*i%orz;
    _.n=n-1;
    for(int i=1;i<n;++i)_.A[i]=jc[i]*cnt[i]%orz;
    _.m=n;
    for(int i=0;i<=n;++i)_.B[i]=njc[n-i];
    _.solve();
    for(int i=1;i<=n;++i){
        ll o=jc[n]*n%orz*njc[i]%orz*njc[n-i]%orz;
        o-=njc[i]*_.ans[n+i]%orz;
        o=(o%orz+orz)%orz;
        printf("%lld\n",o);
    }
	//system("pause");
	return 0;
}


Measured memory_bytes: 135552