#include <bits/stdc++.h>
using namespace std;
int fa[4000005],sz[4000005],dist[4000005];int n,m,t;
int find(int x){
	if (fa[x]==x) return x;
    int f=fa[x];
    fa[x]=find(fa[x]);
    dist[x]+=dist[f];
    return fa[x];
}
void mrge(int x, int y) {
    int rx=find(x),ry=find(y);
    if (rx==ry) return;
    fa[rx]=ry;
    dist[rx]=sz[ry];
    sz[ry]+=sz[rx];
}//pro max

int main(){
	cin>>t;
	for(int i=1;i<=t;i++){
		fa[i]=i;
		dist[i]=0;
		sz[i]=1;
	}
	for(int i=1;i<=t;i++){
		char s;
		int a,b;
		cin>>s>>a>>b;
		if(s=='M') mrge(a,b);
		else {
			if(find(a)!=find(b)) cout<<-1<<endl;
  		  	else cout << abs(dist[a] - dist[b]) -1<< endl;
		}
	}
    return 0;
}

0 条评论

目前还没有评论...