#include<iostream>
#define MaxN 30000
using namespace std;
typedef 
struct node
{
    
int count;
    
int parent;
    
int d;
}NODE;
NODE S[MaxN
+1];
void init()
{
    
for(int i=1;i<=MaxN;i++)
    {
        S[i].count
=1;
        S[i].d
=0;
        S[i].parent
=i;
    }
}
int find_set(int x)
{
    
int t=S[x].parent;
    
if(S[x].parent!=x)
    {
        S[x].parent
=find_set(S[x].parent);
        S[x].d
+=S[t].d;
    }
    
return S[x].parent;
}
void union_set(int x,int y)
{
    x
=find_set(x);
    y
=find_set(y);
    S[y].parent
=x;
    S[y].d
=S[x].count;
    S[x].count
+=S[y].count;
}
int main()
{
    
int P,x,y;
    
char c;
    init();
    scanf(
"%d",&P);
    getchar();    
    
while(P>0)
    {
        P
--;
        c
=getchar();
        
if(c=='M')
        {
            scanf(
"%d%d",&x,&y);
            union_set(x,y);
        }
        
else 
        {
            scanf(
"%d",&x);
            y
=find_set(x);
            printf(
"%d\n",S[y].count-S[x].d-1);
        }
        getchar();
    }
    
return 0;
}