#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=1e6+10;
ll T,n;
ll a[N],b[N],ma[N],mb[N];
bool A[N],B[N];
ll zh=0;
int main()
{
cin>>T;
while(T--)
{
cin>>n;
int S=0;
for(int i=1;i<=2*n;i++) A[i]=B[i]=false,ma[i]=mb[i]=0;
for(int i=1;i<=2*n;i++)
{
cin>>a[i];
ma[i]=a[i];
}
for(int i=1;i<=2*n;i++)
{
cin>>b[i];
mb[i]=b[i];
if(b[i]==1)
{
if(a[i]==2||a[i]==1)
{
S++;
if(zh==1) a[i]=3,A[i]=true,zh=0;
else
{
if(a[i]==2)b[i]=3;
else b[i]=2;
zh=1;
B[i]=true;
}
}
}
if(b[i]==2)
{
if(a[i]==2||a[i]==3)
{
S++;
if(zh==1)a[i]=1,A[i]=true,zh=0;
else
{
if(a[i]==2)b[i]=3;
else b[i]=1;
zh=1;
B[i]=true;
}
}
}
if(b[i]==3)
{
if(a[i]==3||a[i]==1)
{
S++;
if(zh==1)a[i]=2,A[i]=true,zh=0;
else
{
if(a[i]==3)b[i]=1;
else b[i]=2;
zh=1;
B[i]=true;
}
}
}
}
ll t=2*n-S;
ll Ta=t/2,Tb=t/2;
if(t%2!=0) Ta++;
for(int i=1;i<=2*n;i++)
{
if(Ta==0&&Tb==0) break;
if(A[i]==false&&Ta>0)
{
if(B[i]==false&&Tb>0)
{
if(a[i]!=1) a[i]=1,b[i]=2;
else a[i]=2,b[i]=3;
Ta--;Tb--;
}
else
{
if(a[i]==mb[i])
{
if(a[i]==1) a[i]=2,b[i]=3;
else if(a[i]==2) a[i]=3,b[i]=1;
else if(a[i]==3) a[i]=1,b[i]=2;
}
else
{
b[i]=a[i];
a[i]=mb[i];
}
Ta--;
}
}
else if(B[i]=false&&Tb>0)
{
if(ma[i]==b[i])
{
if(ma[i]==1) a[i]=2,b[i]=3;
else if(ma[i]==2) a[i]=3,b[i]=1;
else if(ma[i]==3) a[i]=1,b[i]=2;
}
else
{
a[i]=b[i];
b[i]=ma[i];
}
Tb--;
}
}
cout<<2*n<<endl;
for(int i=1;i<=2*n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
for(int i=1;i<=2*n;i++)
{
cout<<b[i]<<" ";
}
}
return 0;
}