#include<bits/stdc++.h>
using namespace std;
const int N=2e5+9;
int a[N];
int b[N];
int c[N];
bool vis[N];
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n;
        memset(c,0,sizeof c);
        scanf("%d",&n);
        for(int i=1; i<=n; i++)
        {
            scanf("%d",&a[i]);
            c[a[i]]++;
        }
        int id=0;
        vector<int>v;
        for(int i=1; i<=n; i++)
        {
            if(c[i]==0)
            {
                b[++id]=i;
                v.push_back(i);
            }
        }
        id=1;
        memset(vis,0,sizeof vis);
        for(int i=1; i<=n; i++)
        {
            if(vis[a[i]]==0)
            {
                printf("%d ",a[i]);
                vis[a[i]]=1;
            }
            else
            {
                printf("%d ",b[id]);
                ++id;
            }
        }
        printf("\n");
        memset(vis,0,sizeof vis);
        for(int i=1; i<=n; i++)
        {
            if(vis[a[i]]==0)
            {
                printf("%d ",a[i]);
                vis[a[i]]=1;
            }
            else
            {
                int aa=lower_bound(v.begin(),v.end(),a[i])-v.begin();
                aa=aa-1;
                printf("%d ",v[aa]);
                v.erase(v.begin()+aa);
            }
        }
        cout<<endl;
    }
    return 0;
}
