#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;
}