#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
****************************************************************/