#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<vector>
#include<set>
#include<map>
#include<string>
#include<algorithm>
#include<queue>
#include<list>
#define FOR(i,a,b) for(i=(a);i<=(b);i++)
#define ROF(i,a,b) for(i=(a);i>=(b);i--)
#define FOT(i,b) for(i=0;i<(b);i++)
#define mmt(a,b) memset(a,b,sizeof(a))
#define pb push_back
#define mp make_pair
#define y1 fuck
#define N (1<<18)
using namespace std;
typedef long long LL;
typedef long double LD;
const double PI=acos(-1.0);
struct cpx
{
double r,v;
cpx(double _r,double _v):r(_r),v(_v){}
cpx():r(0),v(0){}
friend cpx operator+(cpx A,cpx B){cpx C(A.r+B.r,A.v+B.v);return C;}
friend cpx operator-(cpx A,cpx B){cpx C(A.r-B.r,A.v-B.v);return C;}
friend cpx operator*(cpx A,cpx B){cpx C(A.r*B.r-A.v*B.v,A.v*B.r+A.r*B.v);return C;}
}a[N],b[N],t[N];
double c[N];
int n;
void FFT(cpx P[],int n,int op)
{
for(int i=1,j=0;i<n-1;i++)
{
for(int s=n;j^=s>>=1,~j&s; );
if (i<j) {cpx T=P[i];P[i]=P[j];P[j]=T;}
}
for(int d=0;(1<<d)<n;d++)
{
int m=(1<<d);int m2=m<<1;
double p0=PI/m*op;
cpx u_p(cos(p0),sin(p0));
for(int i=0;i<n;i+=m2)
{
cpx u(1,0);
FOT(j,m)
{
cpx &P1=P[i+j+m],&P2=P[i+j];
cpx t=u*P1;
P1=P2-t;P2=P2+t;u=u*u_p;
}
}
}
}
int main()
{
scanf("%d",&n);int i;
FOT(i,n) {scanf("%lf",&a[i].r);a[i].v=0;}
FOT(i,n) {scanf("%lf",&b[i].r);b[i].v=0;}
int bn=1;
while (bn<n*2+1) bn<<=1;
FOR(i,n,bn-1) a[i]=b[i]=cpx(0,0);
FFT(a,bn,1);
FFT(b,bn,1);
FOT(i,bn) t[i]=a[i]*b[i];
FFT(t,bn,-1);
FOT(i,bn) c[i]=t[i].r/bn;
FOT(i,bn) printf("%.3lf\n",c[i]);
return 0;
}