var
father,before,long:array[0..30005] of longint;
i,j,t,x,y,sx,sy:longint;
s:char;
function get(x:longint):longint;
var
f:longint;
begin
if father[x]=x then exit(x);
f:=get(father[x]);
before[x]:=before[x]+before[father[x]];
father[x]:=f;
get:=f;
end;
procedure init;
begin
readln(t);
for i:=1 to 30000 do begin father[i]:=i; before[i]:=0; long[i]:=1;end;
end;
procedure work;
begin
for i:=1 to t do
begin
readln(s,x,y);
if s='M' then
begin
sx:=get(x);
sy:=get(y);
father[sx]:=sy;
before[sx]:=long[sy];
long[sy]:=long[sy]+long[sx];
end;
if s='C' then
begin
sx:=get(x);
sy:=get(y);
if sx<>sy then j:=-1
else j:=abs(before[x]-before[y])-1;
writeln(j);
end;
end;
end;
begin
init;
work;
end.
/**************************************************************
Problem: 2240
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/