#include<bits/stdc++.h>
using namespace std;
long long n, arr[1000010], t;
struct node{
string s;
}ans[1000010];
bool cmt(node x, node y){
return x.s < y.s;
}
string solve1(long long x){
long long l1 = 1, r1 = 2 * n + 1, l2 = x, r2 = x;
string str1 = "L", str2 = "L";
for(int i = 1; i < n; i++){
if(arr[l1 + 1] == arr[l2 - 1] && l1 + 1 != l2 - 1){
str1 = str1 + "L";
str2 = "L" + str2;
l1++;
l2--;
}
else if(arr[l1 + 1] == arr[r2 + 1] && l1 + 1 != l2 && r2 + 1 != r1){
str1 = str1 + "L";
str2 = "R" + str2;
l1++;
r2++;
}
else if(arr[r1 - 1] == arr[l2 - 1] && r1 - 1 != r2 && l2 - 1 != r1){
str1 = str1 + "R";
str2 = "L" + str2;
r1--;
l2--;
}
else if(arr[r1 - 1] == arr[r2 + 1] && r2 + 1 != r1 - 1){
str1 = str1 + "R";
str2 = "R" + str2;
r1--;
r2++;
}
else return "";
}
return str1 + str2;
}
string solve2(long long x){
long long l1 = 2, r1 = 2 * n, l2 = x, r2 = x;
string str1 = "R", str2 = "L";
for(int i = 1; i < n; i++){
if(arr[l1 + 1] == arr[l2 - 1] && l1 + 1 != l2 - 1){
str1 = str1 + "L";
str2 = "L" + str2;
l1++;
l2--;
}
else if(arr[l1 + 1] == arr[r2 + 1] && l1 + 1 != l2 && r2 + 1 != r1){
str1 = str1 + "L";
str2 = "R" + str2;
l1++;
r2++;
}
else if(arr[r1 - 1] == arr[l2 - 1] && r1 - 1 != r2 && l2 - 1 != r1){
str1 = str1 + "R";
str2 = "L" + str2;
r1--;
l2--;
}
else if(arr[r1 - 1] == arr[r2 + 1] && r2 + 1 != r1 - 1){
str1 = str1 + "R";
str2 = "R" + str2;
r1--;
r2++;
}
else return "";
}
}
int main(){
cin >> t;
while(t--){
scanf("%lld", &n);
for(int i = 1; i <= 2 * n; i++){
scanf("%lld", &arr[i]);
}
long long tot = 0;
string tmp;
for(int i = 2 * n; i >= 2; i--){
if(arr[i] == arr[1])tmp = solve1(i);
if(tmp != ""){
ans[++tot].s = tmp;
}
}
for(int i = 2 * n - 1; i >= 1; i--){
if(arr[i] == arr[n * 2])tmp = solve2(i);
if(tmp != ""){
ans[++tot].s = tmp;
}
}
if(tot){
sort(ans + 1, ans + tot + 1, cmt);
cout << ans[1].s<<'\n';
}
if(!tot){
cout << -1 << '\n';
}
}
return 0;
}