#include<bits/stdc++.h>
using namespace std;
typedef double db;
typedef complex<db> Comp;
const db PI=acos(-1.0);
const int N=1e7+5;
int rev[N];// i 二进制翻转后的数
Comp a[N],b[N];// 系数(点值)
void FFT(Comp *y,int len,int on){
for(int i=0;i<len;i++)
if(i<rev[i])
swap(y[i],y[rev[i]]);// 变到分治后的位置,准备往上迭代
for(int mid=1;mid<len;mid<<=1){// mid 是区间长度的一半
Comp wn(cos(PI/mid),sin(on*PI/mid));// 单位根
for(int j=0,R=mid<<1;j<len;j+=R){// j 是区间左端点,R 是区间长度
Comp w(1,0);
for(int k=0;k<mid;k++,w=w*wn){// k 是区间内的位置,枚举左半区间
Comp u=y[j+k];
Comp t=w*y[j+k+mid];
y[j+k]=u+t;
y[j+k+mid]=u-t;
}
}
}
}
int main(){
int n,m;
scanf("%d%d",&n,&m);
for(int i=0;i<=n;i++){
db x;
scanf("%lf",&x);
a[i]={x,0};
}
for(int i=0;i<=m;i++){
db x;
scanf("%lf",&x);
b[i]={x,0};
}
int len=1,l=0;
while(len<=n+m) len<<=1,l++;// 区间总长度必须是 2 的幂次
for(int i=0;i<len;i++) rev[i]=(rev[i>>1]>>1)|((i&1)<<(l-1));// 蝴蝶变换
FFT(a,len,1);// 系数 -> 点值
FFT(b,len,1);// 系数 -> 点值
for(int i=0;i<=len;i++) a[i]=a[i]*b[i];// 点值相乘
FFT(a,len,-1);// 点值 -> 系数
for(int i=0;i<=n+m;i++)
printf("%d ",(int)(real(a[i])/len+0.5));// 四舍五入输出整数值
return 0;
}