#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define per(i,a,b) for(int i=(a);i>=(b);i--)
#define REP(i,n) for(int i=0;i<int(n);i++)
#define fi first
#define se second
#define pb push_back
#define mp make_pair
using namespace std;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef long long ll;
typedef long double ld;
typedef vi poly;
  
template<class T> inline void read(T &x){
    int f=0;x=0;char ch=getchar();
    for(;!isdigit(ch);ch=getchar())f|=(ch=='-');
    for(;isdigit(ch);ch=getchar())x=x*10+ch-'0';
    if(f)x=-x;
}
   
const int N=(1<<19)+5,M=(1<<15)-1,mod=924844033;
namespace Poly{
    int fix(int x){
        return x>=mod?x-mod:x;
    }
    int power(int x,int p){
        int res=1;
        for(;p;p>>=1,x=(ll)x*x%mod)
            if(p&1)res=(ll)res*x%mod;
        return res;
    }
    const ld pi=acos(-1);
    struct C{
        ld r,i;
        C operator+(const C &o)const{return (C){r+o.r,i+o.i};}
        C operator-(const C &o)const{return (C){r-o.r,i-o.i};}
        C operator/(const ld&o)const{return (C){r/o,i/o};}
        C operator*(const C &o)const{return (C){r*o.r-i*o.i,r*o.i+i*o.r};}
        C mulR(const ld&o)const{return (C){r*o,i*o};}
        C mulI(const ld&o)const{return (C){-i*o,r*o};};
        C conj()const{return (C){r,-i};}
    };
    int mx; C a[N],b[N],c[N],d[N];
    void dft(C *a,int n){
        static C W[N<<1],*H[30],*las=W;
        for(;mx<n;mx++){
            H[mx]=las; C w=(C){1,0};
            C wn=(C){cos(pi/(1<<mx)),sin(pi/(1<<mx))};
            REP(i,1<<mx) *las++=w,w=w*wn;
        }
        for(int i=0,j=0;i<(1<<n);i++){
            if(j<i) swap(a[i],a[j]);
            for(int k=1<<(n-1);(j^=k)<k;k>>=1);
        }
        int m=1<<n;
        for(int k=0,d=1;k<n;k++,d<<=1)
            for(int i=0;i<m;i+=d<<1){
                C *l=a+i,*r=a+i+d,*w=H[k];
                for(int j=0;j<d;++j,++l,++r){
                    const C t=(*w++)*(*r);
                    *r=*l-t,*l=*l+t;
                }
            }
    }
    void Dft(C *a,C *b,int n){
        int m=1<<n;
        REP(i,m)a[i].i=b[i].r;
        dft(a,n);
        REP(i,m)b[i]=a[i?m-i:0].conj();
        REP(i,m){
            C t=(a[i]+b[i]).mulR(0.5);
            b[i]=(a[i]-b[i]).mulI(-0.5);
            a[i]=t;
        }
    }
    void idft(C *a,int n){
        reverse(a+1,a+(1<<n));
        dft(a,n); ld pw=1<<n;
        REP(i,1<<n)a[i]=a[i]/pw;
    }
    void Idft(C *a,int n){
        static C b[N]; int m=1<<(n-1); C w=(C){1,0};
        C wn=(C){cos(pi/(1<<(n-1))),-sin(pi/(1<<(n-1)))};
        REP(i,m){
            b[i]=(a[i]+a[m+i]).mulR(0.5)
                +(a[i]-a[m+i]).mulI(0.5)*w;
            w=w*wn;
        }
        idft(b,n-1);
        REP(i,m){
            a[i<<1]=(C){b[i].r,0};
            a[i<<1|1]=(C){b[i].i,0};
        }
    }
    poly mul(poly A,poly B){
        int aim=A.size()+B.size()-1,n=1;
        while((1<<n)<=aim) n++;
        REP(i,1<<n) a[i]=b[i]=c[i]=d[i]=(C){0,0};
        REP(i,A.size()) a[i].r=A[i]>>15,b[i].r=A[i]&M;
        REP(i,B.size()) c[i].r=B[i]>>15,d[i].r=B[i]&M;
        Dft(a,b,n),Dft(c,d,n);
        REP(i,1<<n){
            C x=a[i]*c[i],y=a[i]*d[i]+b[i]*c[i],z=b[i]*d[i];
            a[i]=x,b[i]=y,c[i]=z;
        }
        Idft(a,n),Idft(b,n),Idft(c,n);
        poly res(aim);
        REP(i,aim){
            ll x=ll(a[i].r+0.5)%mod,y=ll(b[i].r+0.5)%mod,z=c[i].r+0.5;
            res[i]=((x<<30)+(y<<15)+z)%mod;
        }
        return res;
    }
}
  
int fac[N],rev[N],sz[N],cnt[N],n,u,v;
poly A,B;
vi e[N];
  
void dfs(int u,int fa){
    sz[u]=1;
    for(auto v:e[u]){
        if(v==fa) continue;
        dfs(v,u);
        sz[u]+=sz[v];
        cnt[sz[v]]++;
    }
    cnt[n-sz[u]]++;
}
  
int main(){
    read(n);
    rep(i,1,n-1){
        read(u),read(v);
        e[u].pb(v),e[v].pb(u);
    }
    dfs(1,0),fac[0]=1;
    rep(i,1,n) fac[i]=(ll)fac[i-1]*i%mod;
    rev[n]=Poly::power(fac[n],mod-2);
    per(i,n,1) rev[i-1]=(ll)rev[i]*i%mod;
    A.resize(n+1);
    B.resize(n+1);
    rep(i,0,n) A[i]=(ll)cnt[i]*fac[i]%mod;
    rep(i,0,n) B[n-i]=rev[i];
    A=Poly::mul(A,B);
    rep(i,1,n){
        int ans=(ll)A[n+i]*rev[i]%mod;
        ans=((ll)fac[n]*rev[i]%mod*rev[n-i]%mod*n-ans+mod)%mod;
        printf("%d\n",ans);
    }
    return 0;
}

Measured memory_bytes: 136448