#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,q;
int f[N*2];
char op;
int x,y;
int findfather(int x)
{
return f[x]==x?x:f[x]=findfather(f[x]);
}
void Union(int x,int y)
{
f[findfather(x)]=findfather(y);
return;
}
int main(){
scanf("%d%d",&n,&q);
for(int i=1;i<=2*n;i++)
f[i]=i;
while(q--)
{
cin>>op;
scanf("%d%d",&x,&y);
if(op=='R')
{
Union(x,y);
Union(x+n,y+n);
}
else
{
if(op=='A')
{
Union(x+n,y);
Union(y+n,x);
}
else
{
if(op=='Q')
{
if(findfather(x)==findfather(y)||findfather(x+n)==findfather(y+n))
printf("R\n");
else
{
if(f[findfather(x)+n]==f[findfather(y)]||f[findfather(x)]==findfather(y+n))
printf("A\n");
else
printf("?\n");
}
}
}
}
}
return 0;
}
https://www.luogu.com.cn/record/171027810