#include <bits/stdc++.h>
#define ll long long
#define Mid ((L+R)>>1)
using namespace std;
typedef pair<int,int> pii;
inline int read(){
char c;int x=0;int b=1;do{c=getchar();if(c==45)b=-1;}while(c>57||c<48);
do x=x*10+c-48,c=getchar();while(c<=57&&c>=48);x*=b;return x;
}
const int maxn=1600010,mod=998244353,p=3;
int i,j,k,n,m,R[maxn];
ll a[maxn],A[maxn],B[maxn],C[maxn],tmp[maxn];
ll ksm(ll sum,int num){
ll ans=1;
while(num){
if(num&1)ans=ans*sum%mod;
sum=sum*sum%mod;
num>>=1;
}return ans;
}
void NTT(int len,ll *a,int op){
for(int i=0;i<len;i++)tmp[R[i]]=a[i];
for(int i=0;i<len;i++)a[i]=tmp[i];
ll Wn,w,p2=ksm(p,mod-2);
for(int i=1;i<len;i*=2){
Wn=ksm((op? p:p2),(mod-1)/(i*2));
for(int j=0;j<len;j+=i*2){
w=1;
for(int k=0;k<i;k++,w=w*Wn%mod){
int K=k+j;
ll S1=a[K],S2=a[K+i]*w%mod;
a[K]=(S1+S2)%mod;
a[K+i]=(S1-S2+mod)%mod;
}
}
}
}
void mul(int len,int L,ll *A,ll *B,ll *C){
for(i=0;i<len;i++)R[i]=R[i/2]/2+((i&1)*(1<<L-1));
NTT(len,A,1);NTT(len,B,1);
for(i=0;i<len;i++)C[i]=A[i]*B[i]%mod;
NTT(len,C,0);
for(i=0;i<len;i++)C[i]=C[i]*ksm(len,mod-2)%mod;
NTT(len,A,0);
for(i=0;i<len;i++)A[i]=A[i]*ksm(len,mod-2)%mod;
}
void getln(int n,ll *a){
int len=2,Len=1;
A[0]=ksm(a[0],mod-2);
for(;len<=n*2;len*=2,Len++){
for(int j=0;j<len;j++)B[j]=a[j];
mul(len*2,Len+1,A,B,C);C[0]=2-C[0];
for(int j=1;j<len*2;j++)C[j]=-C[j];
for(int j=0;j<len*2;j++)B[j]=C[j];
mul(len*2,Len+1,A,B,C);
for(int j=0;j<len;j++)A[j]=C[j];
for(int j=len;j<len*2;j++)A[j]=0;
}for(int i=0;i<len*2;i++)B[i]=0;
for(int i=0;i<n;i++)B[i]=(i+1)*a[i+1]%mod;
mul(len*2,Len+1,A,B,C);
for(int i=n;i<len;i++)a[i]=0;
for(int i=1;i<n;i++)a[i]=C[i-1]*ksm(i,mod-2)%mod;
a[0]=0;
}
ll Ans[maxn],A2[maxn],A3[maxn],A4[maxn];
void getexp(int n,ll *a){
Ans[0]=1;int len=2,Len=1;
for(;len<=n*2;len*=2,Len++){
for(int i=0;i<len;i++)A2[i]=Ans[i];getln(len,A2);
for(int i=0;i<len;i++)A3[i]=(-A2[i]+a[i]+mod)%mod;A3[0]=(A3[0]+1)%mod;
for(int i=0;i<len;i++)A2[i]=Ans[i];
mul(len*2,Len+1,A2,A3,A4);
for(int i=0;i<len;i++)Ans[i]=A4[i];
for(int i=0;i<len*2;i++)A2[i]=A3[i]=A4[i]=0;
}for(int i=0;i<n;i++)a[i]=Ans[i];
}
int main() {
freopen("P4726.in","r",stdin);
freopen("P4726.out","w",stdout);
cin>>n;
for(i=0;i<n;i++)a[i]=read();
getexp(n,a);
for(i=0;i<n;i++)printf("%lld ",a[i]);puts("");
//cerr << 1.0*clock()/CLOCKS_PER_SEC << endl;
return 0;
}
过不了样例QAQ