#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int xx[4]={0,0,-1,1};
int yy[4]={-1,1,0,0};
int T,n,ans,cnt;string s1,s2;int vis[2][100010];
int main()
{
scanf("%d",&T);
while(T--)
{
ans=0,cnt=0;
memset(vis,0,sizeof(vis));
scanf("%d",&n);
cin>>s1;cin>>s2;
for(int i=0;i<s1.length();++i)
{
char c=s1[i];
if(c=='1')
{
vis[0][i]=1;//碰到1,vis置1
cnt++;
}
}
for(int i=0;i<s1.length();++i)
{
char c=s2[i];
if(c=='1')
{
vis[1][i]=1;//碰到1,vis置1
cnt++;
}
}
for(int i=0;i<s1.length();++i)
{
char c=s1[i];
//int x=0,y=0;
int y=i;
if(c=='1')
{
for(int i=0;i<4;++i)//搜索四方向
{
int dx=0+xx[i];
int dy=y+yy[i];
if(dx==0&&dy>=0&&dy<=s1.length()-1&&!vis[dx][dy])
{//如果旁边有满足的方块,就置2
vis[dx][dy]=2;
ans++;
}
}
}
}
for(int i=0;i<s1.length();++i)
{
char c=s2[i];
int y=i;
if(c=='1')
{
for(int i=0;i<4;++i)//搜索四方向
{//如果旁边有满足的方块,就置2
int dx=1+xx[i];
int dy=y+yy[i];
if(dx==1&&dy>=0&&dy<=s1.length()-1&&!vis[dx][dy])
{
vis[dx][dy]=2;
ans++;
}
}
}
}
if(ans==cnt)//如果满足的方块数等于当初题目要求的数目
printf("RP");
else
printf("++");
if(T!=0)
puts(" ");
}
return 0;
}