#include<bits/stdc++.h>
using namespace std;
struct aa{
int x,y;
bool operator<(const aa &o)const{
return x<o.x;
}
};
priority_queue<aa> q;
int n,nn,a[100005],b[100005],z[100005];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
}
nn=n;
for(int i=1;i<=nn;i++){
cout<<b[i]+a[1]<<" ";
n--;
if(n==0) return 0;
for(int j=2;j<=nn;j++){
if(q.size()&&b[i]+a[j]>a[z[q.top().y]]+b[q.top().y]){
while(b[i]+a[j]>a[z[q.top().y]]+b[q.top().y]&&b[i+1]+a[1]>a[z[q.top().y]]+b[q.top().y]){
if(n==0) return 0;
cout<<a[z[q.top().y]]+b[q.top().y]<<" ";
z[q.top().y]++;
aa dd=q.top();
q.pop();
dd.x=a[z[dd.y]]+b[z[dd.y]];
q.push(dd);
n--;
}
if(b[i+1]+a[1]<=a[z[q.top().y]]+b[q.top().y]&&b[i]+a[j]>=b[i+1]+a[1]){
aa ddd;
ddd.x=b[i]+a[j];
ddd.y=i;
q.push(ddd);
break;
}
}
if(b[i]+a[j]>=b[i+1]+a[1]){
z[i]=j;
aa ddd;
ddd.x=b[i]+a[j];
ddd.y=i;
q.push(ddd);
break;
}
if(n==0) return 0;
cout<<b[i]+a[j]<<" ";
}
if(n==0) return 0;
}
return 0;
}```