帮帮我 求求了
#include<bits/stdc++.h>
using namespace std;
long long int n,a,b;
long long int size[500005],d[500005],fa[500005];
long long int get(long long int x){
if(fa[x]==x)return x;
long long int root=get(fa[x]);
d[x]+=d[fa[x]];
return fa[x]=root;
}
void merge(long long int x,long long int y){
x=get(x),y=get(y);
fa[x]=y,d[x]=size[y];
size[y]+=size[x];
}
int main(){
cin>>n;
char q;
for(int i=1;i<=500005;i++){
fa[i]=i,size[i]=1;
}
while(n--){
cin>>q;
cin>>a>>b;
if(q=='M')merge(a,b);
else{
long long int u=get(a),v=get(b);
if(u==v)cout<<abs((d[a]-d[b])-1)<<'\n';
else cout<<-1<<'\n';
}
}
return 0;
}