#include<bits/stdc++.h>
using namespace std;
const int mod=998244353,g=3,ing=332748118;
long long fpow(long long a,long long b){
long long ans=1;
while(b){
if(b&1)ans=ans*a%mod;
a=a*a%mod;
b>>=1;
}
return ans;
}
long long b[2][300005],res[300005];
int t;
void ntt(long long* a,int n,bool fl){
for(int i=0;i<n;i++)if(i<res[i])swap(a[i],a[res[i]]);
for(int h=1;h<=n;h<<=1){
int wn=fpow(fl? ing:g,(mod-1)/h);
for(int i=0;i<n;i+=(h<<1)){
for(int j=0;j<h;j++){
int x=a[j+i],y=wn*a[j+i+h]%mod;
a[j+i]=(x+y)%mod;
a[i+j+h]=(x-y)%mod;
}
}
}
if(fl==1){
int in=fpow(n,mod-2);
for(int i=0;i<n;i++)a[i]=a[i]*in%mod;
}
}
int n;
long long a[300005];
int s,k;
int main(){
cin>>n;
for(int i=0;i<n;i++)cin>>a[i];
b[0][0]=fpow(a[0],mod-2);
s=2;
k=1;
while(s<=(n<<1)){
for(int i=0;i<s;i++)b[t^1][i]=b[t][i]<<1;
for(int i=0;i<s;i++)res[i]=(res[i>>1]>>1)|((i&1)<<(k-1));
ntt(b[t],s,0);
ntt(a,s,0);
for(int i=0;i<s;i++)b[t][i]=b[t][i]*b[t][i]%mod*a[i]%mod;
ntt(b[t],s,1);
for(int i=0;i<s;i++)b[t^1][i]=(b[t^1][i]-b[t][i]+mod)%mod;
s<<=1;
k++;
t^=1;
}
for(int i=0;i<n;i++)cout<<b[t^1][i]<<" ";
}