#include<bits/stdc++.h>
#define LL long long
#define N (1<<20)+10
#define Mod 1000003
#define M 100010
using namespace std;
int n,m,b,c,d,len,a[M],inv[M],fac[M];
int Pj[N],X[N],Y[N],A[N],B[N],ans[N];
namespace NTT
{
const int m1=998244353,m2=1004535809,pwMod=Mod-1;
const LL P=1002772198720536577LL;
inline int CRT(int r1,int r2){
return (((r1-r2)*334845110LL%m2*m1+r1)%P+P)%P%Mod;
}
int qpow(int a,int t,int P){
int r=1;
while(t){
if(t&1)r=(LL)r*a%P;
a=(LL)a*a%P;t>>=1;
}
return r;
}
int _wn[25],w1[N],w2[N],w3[N],w4[N];
void NTT(int*A,int len,int dft,int P)
{
int i,j=len>>1,k,l,w,wn,c=0,u,v;
for(i=0;i<=21;i++)_wn[i]=qpow(3,P-1>>i,P);
for(i=1;i<len-1;i++)
{
if(i<j)swap(A[i],A[j]);
for(k=len>>1;(j^=k)<k;k>>=1);
}
for(l=2;l<=len;l<<=1)
{
i=l>>1,wn=_wn[++c];
for(j=0;j<len;j+=l){
w=1;
for(k=j;k<j+i;k++){
u=A[k],v=(LL)A[k+i]*w%P;
A[k]=(u+v)%P,A[k+i]=(u-v+P)%P;
w=(LL)w*wn%P;
}
}
}
if(dft==-1)
{
int inv_len=qpow(len,P-2,P);
for(int i=0;i<len;i++)A[i]=(LL)A[i]*inv_len%P;
for(int i=1;i<len/2;i++)swap(A[i],A[len-i]);
}
}
void convol(int*A,int*B,int*R,int len)
{
memcpy(w1,A,len<<2);
memcpy(w2,B,len<<2);
NTT(w1,len,1,m1); NTT(w2,len,1,m1);
for(int i=0;i<len;i++)w3[i]=(LL)w1[i]*w2[i]%m1;
NTT(w3,len,-1,m1);
memcpy(w1,A,len<<2);
memcpy(w2,B,len<<2);
NTT(w1,len,1,m2); NTT(w2,len,1,m2);
for(int i=0;i<len;i++)w4[i]=(LL)w1[i]*w2[i]%m2;
NTT(w4,len,-1,m2);
for(int i=0;i<len;i++)R[i]=CRT(w3[i],w4[i]);
}
}
void init()
{
inv[0]=inv[1]=1;
fac[0]=fac[1]=1;
for(int i=2;i<M;i++)
{
fac[i]=(LL)fac[i-1]*i%Mod;
inv[i]=Mod-(int)(Mod/i*(LL)inv[Mod%i]%Mod); //???i???
}
for(int i=2;i<M;i++)
inv[i]=(LL)inv[i-1]*inv[i]%Mod;
}
int main()
{
init();
while(~scanf("%d%d%d%d",&n,&b,&c,&d))
{
for(len=1;len<2*n;len<<=1);
memset(X,0,len<<2); memset(Y,0,len<<2);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
for(int i=0,y=1;i<n;i++,y=(LL)y*d%Mod)
X[i]=(LL)a[n-i-1]*fac[n-i-1]%Mod,Y[i]=(LL)inv[i]*y%Mod;
using namespace NTT; convol(X,Y,Pj,len);
LL Inv=(LL)b;
for(int i=0;i<n/2;i++) swap(Pj[i],Pj[n-i-1]);
len<<=1; memset(A,0,len<<2); memset(B,0,len<<2);
for(int i=0,x=1;i<n;i++,x=(LL)x*Inv%Mod)
A[i]=(LL)x*Pj[i]%Mod*inv[i]%Mod*qpow(c,(LL)i*i%pwMod,Mod)%Mod;
for(int i=0;i<2*n;i++)
B[i]=qpow(c,(-(LL)(n-i)*(n-i)%pwMod+pwMod)%pwMod,Mod);
convol(A,B,ans,len);
for(int i=0;i<n;i++)
printf("%d\n",(LL)ans[i+n]*qpow(c,(LL)i*i%pwMod,Mod)%Mod);
}
return 0;
}