#include<iostream>
#include<math.h>
#include<algorithm>
#include<cstring>
using namespace std;
int a[1000005], c[1000005], d[1000005], a1[1000005], c1[1000005], d1[1000005];
char b[1000005], b1[1000005];
int t, n, flag1 = 0, flag2 = 0;
int find(int a[], int n,int v) {
for (int i = 2; i <= 2 * n; i++) {
if (a[i] == v)return i;
}
return -1;
}
int main()
{
cin >> t;
for (int i = 0; i < t; i++) {
cin >> n;
flag1 = 0;
for (int j = 1; j <= 2 * n; j++) {
cin >> a[j];
a1[2 * n - j + 1] = a[j];
}
int num = find(a, n, a[1]);
b[1] = 'L';
b[2 * n] = 'L';
if (num == 2) {
for (int j = 2 * n; j >= num + 1; j--) {
d[2 * n - j + num + 1] = a[j];
}
}
else if (num == 2 * n) {
for (int j = 2; j <= num - 1; j++) {
c[j] = a[j];
}
}
else {
for (int j = 2; j <= num - 1; j++) {
c[j] = a[j];
}
for (int j = 2 * n; j >= num + 1; j--) {
d[2 * n - j + num + 1] = a[j];
}
}
char* bb = &b[2];
char* be = &b[2 * n - 1];
int* cb = &c[2];
int* ce = &c[num - 1];
int* db = &d[num+1];
int* de = &d[2 * n];
while (cb <= ce && db <= de) {
if (*cb == *de) {
*bb = 'L';
*be = 'R';
bb++, cb++, be--, de--;
}
else if (*cb == *ce && cb != ce) {
*bb = 'L';
*be = 'L';
bb++, be--, cb++, ce--;
}
else if (*db == *de && db != de) {
*bb = 'R';
*be = 'R';
bb++, db++, be--, de--;
}
else if (*db == *ce) {
*bb = 'R';
*be = 'L';
bb++, db++, be--, ce--;
}
else {
flag1 = 1;
break;
}
}
if (flag1 == 0) {
if (cb > ce&&db<=de) {
flag1 = 0;
while (db <= de) {
if (*db == *de) {
*bb = 'R';
*be = 'R';
bb++, db++, be--, de--;
}
else {
flag1 = 1;
break;
}
}
}
else if (db > de&&cb<=ce) {
flag1 = 0;
while (cb <= ce) {
if (*cb == *ce) {
*bb = 'L';
*be = 'L';
bb++, cb++, be--, ce--;
}
else {
flag1 = 1;
break;
}
}
}
}
flag2 = 0;
num = find(a1, n, a1[1]);
b1[1] = 'R';
b1[2 * n] = 'R';
if (num == 2) {
for (int j = 2 * n; j >= num + 1; j--) {
d1[2 * n - j + num + 1] = a[j];
}
}
else if (num == 2 * n) {
for (int j = 2; j <= num - 1; j++) {
c1[j] = a[j];
}
}
else {
for (int j = 2; j <= num - 1; j++) {
c1[j] = a[j];
}
for (int j = 2 * n; j >= num + 1; j--) {
d1[2 * n - j + num + 1] = a[j];
}
}
bb = &b1[2];
be = &b1[2 * n - 1];
cb = &c1[2];
ce = &c1[num - 1];
db = &d1[num+1];
de = &d1[2 * n];
while (cb <= ce && db <= de) {
if (*db == *ce) {
*bb = 'L';
*be = 'R';
bb++, db++, be--, ce--;
}
else if (*db == *de && db != de) {
*bb = 'L';
*be = 'L';
bb++, db++, be--, de--;
}
else if (*cb == *ce && cb != ce) {
*bb = 'R';
*be = 'R';
bb++, be--, cb++, ce--;
}
else if (*cb == *de) {
*bb = 'R';
*be = 'L';
bb++, cb++, be--, de--;
}
else {
flag2 = 1;
break;
}
}
if (flag2 == 0) {
if (cb > ce&&db<=de) {
flag2 = 0;
while (db <= de) {
if (*db == *de) {
*bb = 'L';
*be = 'L';
bb++, db++, be--, de--;
}
else {
flag2 = 1;
break;
}
}
}
else if (db > de&&cb<=ce) {
flag2 = 0;
while (cb <= ce) {
if (*cb == *ce) {
*bb = 'R';
*be = 'R';
bb++, cb++, be--, ce--;
}
else {
flag2 = 1;
break;
}
}
}
}
if (flag1 == 0) {
for (int i = 1; i <= 2 * n; i++) {
cout << b[i];
}
cout << endl;
}
else if (flag1 == 1 && flag2 == 0) {
for (int i = 1; i <= 2 * n; i++) {
cout << b1[i];
}
cout << endl;
}
else {
cout << "-1" << endl;
}
}
return 0;
}