#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct Node
{
int time,score;
}node[1010];
///按照score从高到低排序
int cmp(struct Node a,struct Node b)
{
if(a.score!=b.score)
return a.score>b.score;
return a.time<b.time;
}
///按照time从小到大排序
int cmp1(struct Node a,struct Node b)
{
if(a.time!=b.time)
return a.time<b.time;
return a.score<b.score;
}
int main()
{
int n;
while(scanf("%d",&n)==1){
for(int i=0;i<n;i++){
scanf("%d",&node[i].time);
}
for(int i=0;i<n;i++){
scanf("%d",&node[i].score);
}
///按照time从小到大排序
sort(node,node+n,cmp1);
for(int i=0;i<n;i++){
printf("%d ",node[i].time);
}
printf("\n");
for(int i=0;i<n;i++){
printf("%d ",node[i].score);
}
printf("\n");
///按照score从高到低排序
cout<<"---------"<<endl;
sort(node,node+n,cmp);
for(int i=0;i<n;i++){
printf("%d ",node[i].time);
}
printf("\n");
for(int i=0;i<n;i++){
printf("%d ",node[i].score);
}
printf("\n");
}
}