#include<bits/stdc++.h>
using namespace std;
#define int short int
int f[100005],e[100005],n,q;
inline int find(int x){
if(f[x]!=x)return f[x]=find(f[x]);
return x;
}
inline void hb(int u,int v){
if(find(u)==find(v)){
return;
}
if(e[find(u)]&&e[find(v)]){
hb(e[find(u)],e[find(v)]);
}
else if(e[find(u)]){
e[find(v)]=e[find(u)];
}
f[find(u)]=find(v);
}
signed main(){
cin>>n>>q;
for(int i=1;i<=n;i++){
f[i]=i;
}
for(int i=1;i<=q;i++){
char op;
int a,b;
cin>>op>>a>>b;
if(op=='R'){
hb(a,b);
}
else if(op=='A'){
if(e[find(a)]!=0){
hb(e[find(a)],b);
}
else{
e[find(a)]=find(b);
}
if(e[find(b)]!=0){
hb(e[find(b)],a);
}
else{
e[find(b)]=find(a);
}
}
else{
if(find(e[find(a)])==find(b)){
cout<<"A\n";
}
else if(find(a)==find(b)){
cout<<"R\n";
}
else{
cout<<"?\n";
}
}
}
return 0;
}