#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int T,n;
int a[N*2];
char c1[N],c2[N],tot1,tot2;
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(int i=1;i<=2*n;i++) scanf("%d",&a[i]);
bool flag=true,flag2=true;
tot1=0,tot2=0;
int l=1,r=2*n,targetl=0,targetr=0;
for(int i=2;i<=2*n;i++)
if(a[i]==a[1])
{
targetl=targetr=i;
break;
}
l++;
c1[++tot1]='L';c2[++tot2]='L';
for(int i=2;i<=n;i++)
{
if(targetr>2*n||targetl<=0)
{
flag=false;
break;
}
if(a[l]==a[targetl-1]&&(l)<(targetl-1))
{
l++;c1[++tot1]='L';c2[++tot2]='L';targetl--;
}
else if(a[l]==a[targetr+1]&&(l)<(targetr+1))
{
l++;c1[++tot1]='L';c2[++tot2]='R';targetr++;
}
else if(a[r]==a[targetl-1]&&(r)>(targetl-1))
{
r--;c1[++tot1]='R';c2[++tot2]='L';targetl--;
}
else if(a[r]==a[targetr+1]&&(r)>(targetr+1))
{
r--;c1[++tot1]='R',c2[++tot2]='R';targetr++;
}
else
{
flag=false;
break;
}
}
if(flag)
{
reverse(c2+1,c2+1+tot2);
for(int i=1;i<=tot1;i++)
printf("%c",c1[i]);
for(int i=1;i<=tot2;i++)
printf("%c",c2[i]);
printf("\n");
}
else
{
tot1=0,tot2=0;
l=1,r=2*n;targetl=targetr=0;
c1[++tot1]='R';c2[++tot2]='L';
for(int i=1;i<2*n;i++)
if(a[2*n]==a[i])
{
targetl=targetr=i;
break;
}
r--;
for(int i=2;i<=n;i++)
{
if(targetr>2*n||targetl<=0)
{
flag2=false;
break;
}
if(a[l]==a[targetl-1]&&(l)<(targetl-1))
{
l++;c1[++tot1]='L';c2[++tot2]='L';targetl--;
}
else if(a[l]==a[targetr+1]&&(l)<(targetr+1))
{
l++;c1[++tot1]='L';c2[++tot2]='R';targetr++;
}
else if(a[r]==a[targetl-1]&&(r)>(targetl-1))
{
r--;c1[++tot1]='R';c2[++tot2]='L';targetl--;
}
else if(a[r]==a[targetr+1]&&(r)>(targetr+1))
{
r--;c1[++tot1]='R',c2[++tot2]='R';targetr++;
}
else
{
flag2=false;
break;
}
}
if(flag2)
{
reverse(c2+1,c2+1+tot2);
for(int i=1;i<=tot1;i++)
printf("%c",c1[i]);
for(int i=1;i<=tot2;i++)
printf("%c",c2[i]);
printf("\n");
}
}
if(!flag&&!flag2) printf("-1\n");
}
return 0;
}