using namespace std;
int pre[30005];
int bak[30005];
int Find(int x,int y)
{
if(pre[x] == y || pre[y] == x)
return 0;
else
{
int step1 = 0,step2 = 0;
int fx = x,fy = y;
while(pre[fx] != fx)
{
//cout << fx << endl;
fx = pre[fx];
step1++;
if(pre[fx] == y || pre[y] == fx)
return step1;
}
while(pre[fy] != fy)
{
//cout << fy << endl;
fy = pre[fy];
step2++;
if(pre[x] == fy || pre[fy] == x)
return step2;
}
}
return -1;
}
void Merge(int x,int y)
{
int sx = x,fy = y;
while(pre[sx] != sx)
sx = pre[sx];
while(bak[fy] != fy)
fy = bak[fy];
if(fy == sx)
return;
else
{
//cout << fy << ' ' << sx << endl;
bak[fy] = sx;
pre[sx] = fy;
}
}
int main()
{
for(int i = 1;i <= 30000;i++)
{
pre[i] = i;
bak[i] = i;
}
long long t;
cin >> t;
for(int i = 1;i <= t;i++)
{
char a;
int x,y;
cin >> a >> x >> y;
if(a == 'M')
Merge(x,y);
if(a == 'C')
{
int step = Find(x,y);
cout << step << endl;
}
}
return 0;
}