#include<bits/stdc++.h>
using namespace std;
#define lli long long int
#define phbk push_back
#define mp make_pair
#define F first
#define S second
vector<lli> v[200010],G[200010];
lli S[4*200010],lazy[4*200010],A[200010],pa[200010][22],IN[200010],OUT[200010],depth[200010];
lli tim=0,x=0;
void dfs(lli node,lli parent,lli level)
{
depth[node]=level;
A[++x]=node;
IN[node]=++tim;
pa[node][0]=parent;
for(lli i=0;i<v[node].size();++i)
{
if(v[node][i]!=parent)
{
G[node].phbk(v[node][i]);
dfs(v[node][i],node,level+1);
}
}
OUT[node]=tim;
}
lli LCA(lli p,lli q)
{
lli tmp,log;
if(depth[p]<depth[q])
{
tmp=p;
p=q;
q=tmp;
}
for(log=1;(1<<log)<=depth[p];log++);
log--;
for(lli i=log;i>=0;i--)
if(depth[p]-(1<<i)>=depth[q])
p=pa[p][i];
if(p==q)
return p;
for(lli i=log;i>=0;i--)
{
if(pa[p][i]!=-1 && pa[p][i]!=pa[q][i])
{
p=pa[p][i];
q=pa[q][i];
}
}
return pa[p][0];
}
lli query(lli node,lli start,lli end,lli pos)
{
if(lazy[node]!=0)
{
S[node]+=lazy[node];
if(start!=end)
{
lazy[2*node]+=lazy[node];
lazy[2*node+1]+=lazy[node];
}
lazy[node]=0;
}
if(start==end)
return S[node];
lli mid=(start+end)/2;
if(pos<=mid)
return query(2*node,start,mid,pos);
return query(2*node+1,mid+1,end,pos);
}
void update(lli node,lli start,lli end,lli l,lli r,lli v)
{
if(lazy[node]!=0)
{
S[node]+=lazy[node];
if(start!=end)
{
lazy[2*node]+=lazy[node];
lazy[2*node+1]+=lazy[node];
}
lazy[node]=0;
}
if(start>r||end<l)
return;
if(start>=l && end<=r)
{
S[node]+=v;
if(start!=end)
{
lazy[2*node]+=v;
lazy[2*node+1]+=v;
}
return;
}
update(2*node,start,(start+end)/2,l,r,v);
update(2*node+1,(start+end)/2+1,end,l,r,v);
S[node]=S[2*node]+S[2*node+1];
}
int main()
{
lli n,q,a,b,lca,s,e,m,ans,in,out;
char c;
scanf("%lld",&n);
for(lli i=1;i<=n-1;++i)
{
scanf("%lld%lld",&a,&b);
v[a].phbk(b);
v[b].phbk(a);
}
memset(pa,-1,sizeof(pa));
dfs(1,-1,1);
for(lli j=1;(1<<j)<=n;j++)
for(lli i=1;i<=n;i++)
if(pa[i][j-1]!=-1)
pa[i][j]=pa[pa[i][j-1]][j-1];
scanf("%lld",&q);
while(q--)
{
cin>>c;
if(c=='Q')
{
scanf("%lld",&a);
printf("%lld\n",query(1,1,n,A[IN[a]]));
}
else if(c=='M')
{
scanf("%lld%lld",&a,&b);
lca=LCA(a,b);
update(1,1,n,A[IN[a]],A[OUT[a]],1);
update(1,1,n,A[IN[b]],A[OUT[b]],1);
if(depth[b]<depth[a])
swap(a,b);
if(lca==a)
{
s=0;
ans=-1;
e=G[a].size();
while(s<=e)
{
m=(s+e)/2;
in=IN[G[a][m]];
out=OUT[G[a][m]];
if(in>IN[b])
e=m-1;
else if(out<OUT[b])
s=m+1;
else
{
ans=m;
break;
}
}
update(1,1,n,A[IN[ans]],A[OUT[ans]],-1);
}
}
else
{
scanf("%lld%lld",&a,&b);
lca=LCA(a,b);
update(1,1,n,A[IN[a]],A[OUT[a]],-1);
update(1,1,n,A[IN[b]],A[OUT[b]],-1);
if(depth[b]<depth[a])
swap(a,b);
if(lca==a)
{
s=0;
ans=-1;
e=G[a].size();
while(s<=e)
{
m=(s+e)/2;
in=IN[G[a][m]];
out=OUT[G[a][m]];
if(in>IN[b])
e=m-1;
else if(out<OUT[b])
s=m+1;
else
{
ans=m;
break;
}
}
update(1,1,n,A[IN[ans]],A[OUT[ans]],1);
}
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbGkgbG9uZyBsb25nIGludAojZGVmaW5lIHBoYmsgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCnZlY3RvcjxsbGk+IHZbMjAwMDEwXSxHWzIwMDAxMF07CmxsaSBTWzQqMjAwMDEwXSxsYXp5WzQqMjAwMDEwXSxBWzIwMDAxMF0scGFbMjAwMDEwXVsyMl0sSU5bMjAwMDEwXSxPVVRbMjAwMDEwXSxkZXB0aFsyMDAwMTBdOwpsbGkgdGltPTAseD0wOwp2b2lkIGRmcyhsbGkgbm9kZSxsbGkgcGFyZW50LGxsaSBsZXZlbCkKewoJZGVwdGhbbm9kZV09bGV2ZWw7CglBWysreF09bm9kZTsKCUlOW25vZGVdPSsrdGltOwoJcGFbbm9kZV1bMF09cGFyZW50OwoJZm9yKGxsaSBpPTA7aTx2W25vZGVdLnNpemUoKTsrK2kpCgl7CgkJaWYodltub2RlXVtpXSE9cGFyZW50KQoJCXsKCQkJR1tub2RlXS5waGJrKHZbbm9kZV1baV0pOwoJCQlkZnModltub2RlXVtpXSxub2RlLGxldmVsKzEpOwoJCX0KCX0KCU9VVFtub2RlXT10aW07Cn0KbGxpIExDQShsbGkgcCxsbGkgcSkKewogICAgbGxpIHRtcCxsb2c7CiAgICBpZihkZXB0aFtwXTxkZXB0aFtxXSkKICAgIHsKICAgICAgIAl0bXA9cDsKCQlwPXE7IAoJCXE9dG1wOwogICAgfQogICAgZm9yKGxvZz0xOygxPDxsb2cpPD1kZXB0aFtwXTtsb2crKyk7CiAgICAJbG9nLS07CiAgICBmb3IobGxpIGk9bG9nO2k+PTA7aS0tKQogICAgICAgIGlmKGRlcHRoW3BdLSgxPDxpKT49ZGVwdGhbcV0pCiAgICAgICAgICAgIHA9cGFbcF1baV07CiAgICBpZihwPT1xKQogICAgICAgIHJldHVybiBwOwogICAgZm9yKGxsaSBpPWxvZztpPj0wO2ktLSkKICAgIHsKICAgIAlpZihwYVtwXVtpXSE9LTEgJiYgcGFbcF1baV0hPXBhW3FdW2ldKQogICAgICAgIHsKICAgICAgICAJcD1wYVtwXVtpXTsKCQkJcT1wYVtxXVtpXTsKCQl9Cgl9CiAgICByZXR1cm4gcGFbcF1bMF07Cn0KbGxpIHF1ZXJ5KGxsaSBub2RlLGxsaSBzdGFydCxsbGkgZW5kLGxsaSBwb3MpCnsKCWlmKGxhenlbbm9kZV0hPTApCgl7CgkJU1tub2RlXSs9bGF6eVtub2RlXTsKCQlpZihzdGFydCE9ZW5kKQoJCXsKCQkJbGF6eVsyKm5vZGVdKz1sYXp5W25vZGVdOwoJCQlsYXp5WzIqbm9kZSsxXSs9bGF6eVtub2RlXTsKCQl9CgkJbGF6eVtub2RlXT0wOwoJfQoJaWYoc3RhcnQ9PWVuZCkKCQlyZXR1cm4gU1tub2RlXTsKCWxsaSBtaWQ9KHN0YXJ0K2VuZCkvMjsKCWlmKHBvczw9bWlkKQoJCXJldHVybiBxdWVyeSgyKm5vZGUsc3RhcnQsbWlkLHBvcyk7CglyZXR1cm4gcXVlcnkoMipub2RlKzEsbWlkKzEsZW5kLHBvcyk7CQp9CnZvaWQgdXBkYXRlKGxsaSBub2RlLGxsaSBzdGFydCxsbGkgZW5kLGxsaSBsLGxsaSByLGxsaSB2KQp7CglpZihsYXp5W25vZGVdIT0wKQoJewoJCVNbbm9kZV0rPWxhenlbbm9kZV07CgkJaWYoc3RhcnQhPWVuZCkKCQl7CgkJCWxhenlbMipub2RlXSs9bGF6eVtub2RlXTsKCQkJbGF6eVsyKm5vZGUrMV0rPWxhenlbbm9kZV07CgkJfQoJCWxhenlbbm9kZV09MDsKCX0KCWlmKHN0YXJ0PnJ8fGVuZDxsKQoJCXJldHVybjsKCWlmKHN0YXJ0Pj1sICYmIGVuZDw9cikKCXsKCQlTW25vZGVdKz12OwoJCWlmKHN0YXJ0IT1lbmQpCgkJewoJCQlsYXp5WzIqbm9kZV0rPXY7CgkJCWxhenlbMipub2RlKzFdKz12OwoJCX0KCQlyZXR1cm47Cgl9Cgl1cGRhdGUoMipub2RlLHN0YXJ0LChzdGFydCtlbmQpLzIsbCxyLHYpOwoJdXBkYXRlKDIqbm9kZSsxLChzdGFydCtlbmQpLzIrMSxlbmQsbCxyLHYpOwoJU1tub2RlXT1TWzIqbm9kZV0rU1syKm5vZGUrMV07CQp9CmludCBtYWluKCkKewoJbGxpIG4scSxhLGIsbGNhLHMsZSxtLGFucyxpbixvdXQ7CgljaGFyIGM7CglzY2FuZigiJWxsZCIsJm4pOwoJZm9yKGxsaSBpPTE7aTw9bi0xOysraSkKCXsKCQlzY2FuZigiJWxsZCVsbGQiLCZhLCZiKTsKCQl2W2FdLnBoYmsoYik7CgkJdltiXS5waGJrKGEpOwoJfQoJbWVtc2V0KHBhLC0xLHNpemVvZihwYSkpOwoJZGZzKDEsLTEsMSk7Cglmb3IobGxpIGo9MTsoMTw8aik8PW47aisrKQogICAgICAgIGZvcihsbGkgaT0xO2k8PW47aSsrKQogICAgICAgICAgICBpZihwYVtpXVtqLTFdIT0tMSkKICAgICAgICAgICAgICAgIHBhW2ldW2pdPXBhW3BhW2ldW2otMV1dW2otMV07ICAgICAgICAgICAgCglzY2FuZigiJWxsZCIsJnEpOwoJd2hpbGUocS0tKQoJewoJCWNpbj4+YzsKCQlpZihjPT0nUScpCgkJewoJCQlzY2FuZigiJWxsZCIsJmEpOwoJCQlwcmludGYoIiVsbGRcbiIscXVlcnkoMSwxLG4sQVtJTlthXV0pKTsKCQl9CgkJZWxzZSBpZihjPT0nTScpCgkJewoJCQlzY2FuZigiJWxsZCVsbGQiLCZhLCZiKTsKCQkJbGNhPUxDQShhLGIpOwoJCQl1cGRhdGUoMSwxLG4sQVtJTlthXV0sQVtPVVRbYV1dLDEpOwoJCQl1cGRhdGUoMSwxLG4sQVtJTltiXV0sQVtPVVRbYl1dLDEpOwoJCQlpZihkZXB0aFtiXTxkZXB0aFthXSkKCQkJCXN3YXAoYSxiKTsKCQkJaWYobGNhPT1hKQoJCQl7CgkJCQlzPTA7CgkJCQlhbnM9LTE7CgkJCQllPUdbYV0uc2l6ZSgpOwoJCQkJd2hpbGUoczw9ZSkKCQkJCXsKCQkJCQltPShzK2UpLzI7CgkJCQkJaW49SU5bR1thXVttXV07CgkJCQkJb3V0PU9VVFtHW2FdW21dXTsKCQkJCQlpZihpbj5JTltiXSkKCQkJCQkJZT1tLTE7CgkJCQkJZWxzZSBpZihvdXQ8T1VUW2JdKQoJCQkJCQlzPW0rMTsKCQkJCQllbHNlCgkJCQkJewoJCQkJCQlhbnM9bTsKCQkJCQkJYnJlYWs7CgkJCQkJfQkJCQoJCQkJfQoJCQkJdXBkYXRlKDEsMSxuLEFbSU5bYW5zXV0sQVtPVVRbYW5zXV0sLTEpOwoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJCXNjYW5mKCIlbGxkJWxsZCIsJmEsJmIpOwoJCQlsY2E9TENBKGEsYik7CgkJCXVwZGF0ZSgxLDEsbixBW0lOW2FdXSxBW09VVFthXV0sLTEpOwoJCQl1cGRhdGUoMSwxLG4sQVtJTltiXV0sQVtPVVRbYl1dLC0xKTsKCQkJaWYoZGVwdGhbYl08ZGVwdGhbYV0pCgkJCQlzd2FwKGEsYik7CgkJCWlmKGxjYT09YSkKCQkJewoJCQkJcz0wOwoJCQkJYW5zPS0xOwoJCQkJZT1HW2FdLnNpemUoKTsKCQkJCXdoaWxlKHM8PWUpCgkJCQl7CgkJCQkJbT0ocytlKS8yOwoJCQkJCWluPUlOW0dbYV1bbV1dOwoJCQkJCW91dD1PVVRbR1thXVttXV07CgkJCQkJaWYoaW4+SU5bYl0pCgkJCQkJCWU9bS0xOwoJCQkJCWVsc2UgaWYob3V0PE9VVFtiXSkKCQkJCQkJcz1tKzE7CgkJCQkJZWxzZQoJCQkJCXsKCQkJCQkJYW5zPW07CgkJCQkJCWJyZWFrOwoJCQkJCX0JCQkKCQkJCX0KCQkJCXVwZGF0ZSgxLDEsbixBW0lOW2Fuc11dLEFbT1VUW2Fuc11dLDEpOwoJCQl9CgkJfQoJfQp9