#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define REP(i,m,n) for(int i=(int)(m) ; i < (int) (n) ; ++i ) #define rep(i,n) REP(i,0,n) using ll = long long; constexpr int inf=1e9+7; constexpr ll longinf=1LL<<60 ; constexpr ll mod=1e9+7 ; typedef vector> poly; const double pi=acos(-1); poly dft(poly f,int rev){ int n=f.size(); int j=0; REP(i,1,n-1){ for(int k=n/2;k>(j^=k);k>>=1); if(i zeta,ret,t,s; for(int i=1;i(t.real()*ret.real()-t.imag()*ret.imag(),t.imag()*ret.real()+t.real()*ret.imag()); f[j+k]=s+t; f[j+k+i]=s-t; ret*=zeta; } } } if(rev==-1)rep(i,n)f[i]/=n; return f; } poly fft(poly g,poly h){ poly f; int m=(int)g.size()+h.size()+1; int sz=1; while(sz>n>>q; vector> a(n); rep(i,n)cin>>a[i]; rep(i,n)a.push_back(a[i]); vector> b(n); rep(i,q){ int x; cin>>x; b[n-x-1]+=1; } auto ans = fft(a, b); rep(i,n)cout<<(int)(ans[n-1+i].real()+.5)<<" \n"[i+1==n]; return 0; }