44分
不要问我为什么define int long long
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<vector>
#include<stack>
#include<string>
#include<cmath>
#include<cstring>
#include<set>
#include<map>
#define N 30005
#define int long long
using namespace std;
int fa[N],dis[N],size[N];
int find(int x){
if(fa[x]==x) return x;
int f=find(fa[x]);
dis[x]+=dis[fa[x]];
fa[x]=f;
return fa[x];
}
void merge(int i,int j){
int x=find(i),y=find(j);
if(x==y){
return ;
}
fa[x]=y,dis[x]+=size[y],size[y]+=size[x];
}
signed main(){
// freopen("test.in","r",stdin);
// freopen("test.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);
int T;
cin>>T;
for(int i=1;i<N;++i) fa[i]=i,size[i]=1;
while(T--){
char op;
int i,j;
cin>>op>>i>>j;
if(op=='M'){merge(i,j);}
else{
int x=find(i),y=find(j);
if(x!=y) puts("-1");
else cout<<abs(dis[i]-dis[j])-1<<'\n';
}
}
return 0;
}