#include <bits/stdc++.h>
using namespace std;
int line_head[30001];
int line_tail[30001];
int find_head(int a){
if(line_head[a]==a) return a;
return find_head(line_head[a]);
}
int find_tail(int a){
if(line_tail[a]==a) return a;
return find_tail(line_tail[a]);
}
void _m(int i,int j){
swap(line_head[find_head(i)],line_tail[find_tail(j)]);
return;
}
int cnt(int step,int i,int j){
if(i==j) return step;
return cnt(step+1,line_head[i],j);
}
void _c(int i,int j){
if(find_head(i)!=find_head(j)){
cout<<"-1"<<endl;
return;
}
cout<<abs(cnt(0,i,find_head(i))-cnt(0,j,find_head(j)))-1<<endl;
return;
}
int main(){
int p;
cin>>p;
for(int i=1;i<=30000;i++){
line_head[i]=i;
line_tail[i]=i;
}
for(int x=1;x<=p;x++){
char type;
int i,j;
cin>>type>>i>>j;
if(type=='M'){
_m(i,j);
}
if(type=='C'){
_c(i,j);
}
}
return 0;
}
55分求调