#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <cstring>
#include <complex>
#define pi acos(-1)
#define N 4000010
using namespace std;
complex<double> a[N],b[N],p[N];
int n,m,c[N];
string s,ss;
void FFT(complex<double> x[],int n,int p)
{
//把原来依次排列的数变成叶子中的顺序
for (int i=0,t=0;i<n;i++)
{
if (i>t) swap(x[i],x[t]);
for (int j=n>>1;(t^=j)<j;j>>=1);
}
for (int m=2;m<=n;m<<=1) //枚举每一层
{
complex<double> wn(cos(p*2*pi/m),sin(p*2*pi/m));
for (int i=0;i<n;i+=m)
{
complex<double> w(1,0),u;
int k=m>>1;
for (int j=0;j<k;j++,w*=wn)
{
//蝴蝶操作
u=x[i+j+k]*w;
x[i+j+k]=x[i+j]-u;
x[i+j]=x[i+j]+u;
}
}
}
}
int main()
{
cin>>n>>m;
for(int i=0;i<=n;i++)
cin>>a[i];
for(int i=0;i<=m;i++)
cin>>b[i];
int mm=1;
while(mm<m+n+1)
mm<<=1;
FFT(a,mm,1),FFT(b,mm,1);
for (int i=0;i<=mm;i++)
p[i]=a[i]*b[i];
//插值
FFT(p,mm,-1);
for (int i=0;i<=mm;i++)
c[i]=p[i].real()/mm+0.5;
for (int i=0;i<=m+n;i++)//位数
printf("%d ",c[i]);
return 0;
}