#include <cstdio>
#include <cstdlib>
int size[1000001],f[1000001],d[1000001];
int inf=30001;
int find(int x)
{
if(f[x]==x)
{
return x;
}
int t1=f[x];
int t2=find(f[x]);
f[x]=t2;
d[x]+=d[t1];
return t2;
}
int main()
{
int n=0;
scanf("%d",&n);
for(int i=1;i<=inf;i++)
{
f[i]=i;
size[i]=1;
}
for(int i=1;i<=n;i++)
{
char t[5];
int x=0,y=0;
scanf("%s %d %d",t+1,&x,&y);
int tx=find(x),ty=find(y);
if(t[1]=='M')
{
f[tx]=ty;
d[tx]=size[ty];
size[ty]+=size[tx];
size[tx]=0;
}
else if(t[1]=='C')
{
if(tx!=ty)
{
printf("-1\n");
}
else
{
printf("%d\n",abs(d[x]-d[y])-1);
}
}
}
return 0;
}
/**************************************************************
Problem: 2045
User: admin
Language: C++
Result: Accepted
Time:950 ms
Memory:12864 kb
****************************************************************/