{ ll@n,@k; if(n>30){ int a[1d4+1]; int f=0; ll s=0; rep(i,n){ rd(a[i]); f+=a[i]; } s=f+f; a[n]=f; int j=0; k-=n+1; while(k--){ f=f+f-a[j]; f+=f<0?(int)MD:f>=MD?-(int)MD:0; s+=f; a[j]=f; j=j==n?0:j+1; } s%=MD; wt(f,s); }else{ Mint a[30]; rd(a(n)); Polynomial b,c,m; b.change(0,1); c.change(1,1); m.change(0,1); m.change(n,-2); m.change(n+1,1); for(int j=40;j>=0;--j){ b*=b; b%=m; if(k-n&1l<