屯板子
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define N 2621450
#define pi P_P
using namespace std;
const double pi=acos(-1);
struct E{
double x,y;
E(double _x=0.0,double _y=0.0) { x=_x,y=_y; }
inline E operator=(const E &w)
{ this->x=w.x,this->y=w.y;return *this; }
inline E operator+(const E &w)
{ return E(x+w.x,y+w.y); }
inline E operator-(const E &w)
{ return E(x-w.x,y-w.y); }
inline E operator*(const E &w)
{ return E(x*w.x-y*w.y,x*w.y+y*w.x); }
inline E operator*=(const E &w)
{ return (*this)=(*this)*w; }
}a[N],b[N];int r[N];
inline int FFT(E *a,int n,int sgn)
{
for(int i=0;i<n;i++)
if(i<r[i]) swap(a[i],a[r[i]]);
for(int i=1;i<n;i<<=1)
{
E wn(cos(pi/i),sgn*sin(pi/i));
for(int p=i<<1,j=0;j<n;j+=p)
{
E w(1.0,0.0);
for(int k=0;k<i;k++,w*=wn)
{
E x=a[j+k],y=w*a[j+k+i];
a[j+k]=x+y,a[j+k+i]=x-y;
}
}
}
return 0;
}
#define gc getchar()
inline int inn()
{ int x;while((x=gc)<'0'||x>'9');return x^'0'; }
#undef gc
int main()
{
int n,m,L;scanf("%d%d",&n,&m);
for(int i=0;i<=n;i++) a[i]=E(inn(),0.0);
for(int i=0;i<=m;i++) b[i]=E(inn(),0.0);
for(m+=n,n=1,L=0;n<=m;n<<=1,L++);
for(int i=0;i<n;i++)
r[i]=((r[i>>1]>>1)|((i&1)<<(L-1)));
FFT(a,n,1),FFT(b,n,1);
for(int i=0;i<=n;i++) a[i]*=b[i];
FFT(a,n,-1);
for(int i=0;i<=m;i++)
printf("%d ",(int)(a[i].x/n+0.5));
return !printf("\n");
}