#include #include #include #include #include using namespace std; const int p=1009; using mint=atcoder::static_modint

; int M,N; int K[4<<17]; mint A[2000]; vectorconv(vectora,vectorb) { vectorL(N+1),R(N+1); for(int i=0;i<=N;i++)L[i]=a[i].val(); for(int i=0;i<=N;i++)R[i]=b[i].val(); auto M=atcoder::convolution_ll(L,R); vectorret(N+1); for(int i=0;i<=N;i++)ret[i]=mint(M[i]); return ret; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin>>M>>N; for(int i=0;i<=M;i++)cin>>K[i]; int sum=0; for(int i=2;i<=M;i++)sum+=K[i]; for(int i=0;i<=N;i++) { int a;cin>>a; A[i]=a; } vectora(N+1); a[0]=A[0].pow(sum); vectorb(A,A+N+1); int t=K[0]+K[1]*p; while(t) { if(t&1)a=conv(a,b); t>>=1; b=conv(b,b); } for(int i=0;i<=N;i++)cout<