#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define pre(i,a,b) for(int i=a;i>=b;i--)
#define N 4000005
using namespace std;
int n,m,t;
typedef double db;
const db pi = acos ( -1.0 ) ;
struct comp{
db a,b; // a+bi
comp(db x=0,db y=0){a=x;b=y;}
}f[N],g[N];
comp operator+(comp x,comp y){return comp(x.a+y.a,x.b+y.b);}
comp operator-(comp x,comp y){return comp(x.a-y.a,x.b-y.b);}
comp operator*(comp x,comp y){return comp(x.a*y.a-x.b*y.b,x.a*y.b+x.b*y.a);}
int rev[N];
void fft(comp *u,int op){
rep(i,0,t-1)if(rev[i]>i)swap(u[rev[i]],u[i]);
for(int k=2;k<=t;k<<=1){
int l=k>>1;
comp w(cos(pi/l),sin(pi/l)*op);
for(int i=0;i<t;i+=k){
comp now(1,0);
rep(j,0,l-1){
comp x=u[i+j],y=u[i+j+l]*now;
u[i+j]=x+y;
u[i+j+l]=x-y;
now=now*w;
}
}
}
}
int main(){
scanf("%d%d",&n,&m);
rep(i,0,n)scanf("%lf",&f[i].a);
rep(i,0,n)scanf("%lf",&g[i].a);
int b=0;
for(t=1;t<=n+m;t<<=1,b++);
rep(i,0,t-1)rev[i]=(rev[i>>1]>>1)|((i&1)<<(b-1));
fft(f,1);fft(g,1);
rep(i,0,t-1)f[i]=f[i]*g[i];
fft(f,-1);
rep(i,0,n+m)printf("%d ",(int)(f[i].a/t+0.5));
return 0;
}