#include<bits/stdc++.h>
using namespace std;
const int maxn=5e6+5;
const double pi=acos(-1.0);
struct Complex
{
double x,y;
Complex(double xx=0,double yy=0){x=xx,y=yy;};
}a[maxn],b[maxn];
Complex operator +(Complex a,Complex b){return Complex(a.x+b.x,a.y+b.y);}
Complex operator -(Complex a,Complex b){return Complex(a.x-b.x,a.y-b.y);}
Complex operator *(Complex a,Complex b){return Complex(a.x*b.x-a.y*b.y,a.x*b.y+a.y*b.x);}
void fft(int limit,Complex *a,int type)
{
if(limit == 1)return;
Complex a1[limit>>1],a2[limit>>1];
for(int i=0;i<=limit;i+=2)
a1[i>>1]=a[i],a2[i>>1]=a[i+1];
fft(limit>>1,a1,type);
fft(limit>>1,a2,type);
Complex wn=Complex(cos(2.0*pi/limit),type*sin(2.0*pi/limit)),w=Complex(1,0);
for(int i=0;i<(limit>>1);i++,w=w*wn)
{
a[i]=a1[i]+w*a2[i];
a[i+(limit>>1)]=a1[i]-w*a2[i];
}
}
int main()
{
int n,m;cin>>n>>m;
for(int i=0;i<=n;++i)cin>>a[i].x;
for(int i=0;i<=m;++i)cin>>b[i].x;
int limit=1;while(limit<=n+m)limit<<=1;
fft(limit,a,1);fft(limit,b,1);
for(int i=0;i<=limit;++i)a[i]=a[i]*b[i];
fft(limit,a,-1);
for(int i=0;i<=n+m;++i)cout<<a[i].x<<' '<<limit<<endl,printf("%d ",(int)(a[i].x/limit+0.5));
}