include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
using namespace std;
const int N=30010;
int m;
int p[N],s[N],d[N];//d[N]表示i这个点到根节点的距离
int find(int x){
if(p[x]!=x){
int root=find(p[x]);
d[x]+=d[p[x]];
p[x]=root;
}
return p[x];
}
int main(){
cin>>m;
for(int i=0;i<N;i++){
p[i]=i;
s[i]=1;
}
while(m–){
char op[2];
int a,b;
scanf(“%s%d%d”,op,&a,&b);
if(op[0]==’M’){
int pa=find(a); //pa表示a的排头
int pb=find(b);
if(pa!=pb){
d[pa]=s[pb];
s[pb]+=s[pa];
p[pa]=pb;
}
}
else{
int pa=find(a),pb=find(b);
if(pa!=pb) puts(“-1”);
else printf(“%d\n”, max(0, abs(d[a] - d[b]) - 1));
}
}
return 0;
}