#include<bits/stdc++.h>
#pragma GCC timilize(3)
using namespace std;
int fa[40005];
int d[40005];
int size[40005];
inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
int get(int x)
{
if(x==fa[x])
return x;
int root=get(fa[x]);
d[x]+=d[fa[x]];
return fa[x]=root;
}
void merge(int x,int y)
{
x=get(x);
y=get(y);
fa[x]=y;
d[x]=size[y];
size[y]+=size[x];
}
int main()
{int t;
cin>>t;
for(int i=1;i<=t;i++)
size[i]=1,fa[i]=i;
for(int i=1;i<=t;i++)
{
char ch;
int q,w;
cin>>ch;
if(ch=='M')
{
q=read();
w=read();
merge(q,w);
}
if(ch=='C')
{
q=read();
w=read();
if(get(q)==get(w))
cout<<abs(d[q]-d[w])-1<<endl;
else cout<<-1<<endl;
}
}
}