#include<bits/stdc++.h>
using namespace std;
int v[30010];
struct ship
{
vector <int> l;
}a[30010];
void init()
{
for(int i=1;i<=30000;i++)
{
a[i].l.push_back(i);
v[i]=i;
}
}
void hb(int x,int y)
{
int vx=v[x],vy=v[y];
for(int i=0;i<a[vx].l.size();i++)
{
a[vy].l.push_back(a[vx].l[i]);
v[a[vx].l[i]]=y;
}a[vx].l.clear();
}
int check(int h,int x,int y)
{
int kx,ky;
for(int i=0;i<a[h].l.size();i++)
{
if(a[h].l[i]==x)kx=i;
if(a[h].l[i]==y)ky=i;
}
return max(kx,ky)-min(kx,ky)-1;
}
int main()
{
vector <int> out;
int t;
cin>>t;
init();
while(t--)
{
char c;
int i,j;
cin>>c>>i>>j;
if(c=='M')
{
hb(i,j);
}
if(c=='C')
{
if(v[i]!=v[j])
{
out.push_back(-1);
}
else
{
out.push_back(check(v[i],i,j));
}
}
}
for(int i=0;i<out.size();i++)cout<<out[i]<<endl;
}
题目