# include <iostream>
# include <algorithm>
using namespace std;
const int N=1e3+5;
int n,s1[N],s2[N];
void output(int a[],int n)
{
for(int i=0;i<n;++i)cout<<a[i]<<" ";
cout<<endl;
}
int partition(int a[],int l,int r,int x)
{
for(int i=l;i<=r;++i)
if(a[i]==x)
{
swap(a[i],a[l]);
break;
}
int i=l,j=r+1;
while(1)
{
while(a[++i]<x&&i<=r);
while(a[--j]>x);
if(i>=j)break;
swap(a[i],a[j]);
}
swap(a[l],a[j]);
return j;
}
void fun(int l,int r)
{
if(l>=r)return;
int j=partition(s1,l,r,s2[l]);
partition(s2,l,r,s1[j]);
fun(l,j),fun(j+1,r);
}
int main()
{
/*
输入样例:
数组长度n
n个s1元素,即螺母尺寸
n个s2元素 ,即螺丝尺寸
*/
cin>>n;
for(int i=0;i<n;++i)cin>>s1[i];
for(int i=0;i<n;++i)cin>>s2[i];
fun(0,n-1);
output(s1,n);
output(s2,n);
return 0;
}