#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <map>
#include <queue>
using namespace std;
const int N=1e6+6;
const int inf=0x3f3f3f3f;
const int mod=1e9+7;
struct NOde
{
    int idx;
}node[20004];
int main()
{
    int n;
    int a[20005],b[20005];
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>node[i].idx;
    }
    for(int i=n-1;i>=0;i--)
    {
        a[node[i].idx]=i+1;
        b[node[i].idx]=i+1;
    }
    for(int i=1;i<=n;i++)
    {
        if(i!=1) cout<<' ';
        cout<<a[i];
    }
    cout<<endl;
    for(int i=1;i<=n;i++)
    {
        if(i!=1) cout<<' ';
        cout<<b[i];
    }
    cout<<endl;
    return 0;
}