#include <bits/stdc++.h>
#define F first
#define S second
using namespace std;
int const N=300001,poc=1<<19;
int tree[2*poc+1],gl[N],l=0,w,a,b,c;
pair<int,int>odw[N];
vector<int>g[N];
void dfs(int v){
l++;
odw[v].F=l;
for(int i:g[v]){
if(odw[i].F==0) {
if(gl[i]==0) gl[i]=gl[v]+1;
dfs(i);
}
}
if(g[v].size()!=1)l++;
odw[v].S=l;
}
void Update(int v,int p,int k){
if(b<p||k<a) return;
if(a<=p&&k<=b) tree[v]++;
else{
Update(2*v,p,(p+k)/2); Update(2*v+1,(p+k)/2+1,k);
}
}
int Read(int v){
w=tree[v];
v/=2;
while(v>0){
w+=tree[v];
v/=2;
}
return w;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n,m;
char x;
cin>>n;
for(int i=1;i<n;i++){
cin>>a>>b;
g[a].push_back(b);
g[b].push_back(a);
}
dfs(1);
//for(int i=1;i<=n;i++) cout<<gl[i]<<' ';
cin>>m;
for(int i=1;i<n+m;i++){
cin>>x;
if(x=='A'){
cin>>a>>b;
//cout<<a<<' '<<b<<' ';
//if(gl[a]>gl[b]) swap(a,b);
a=odw[b].F+poc;
b=odw[b].S+poc;
//cout<<a-poc<<' '<<b-poc<<endl;
if(a!=b) Update(1,poc,2*poc);
else tree[a]++;
}
else{
cin>>a;
if(odw[a].F!=odw[a].S) cout<<gl[a]-Read(odw[a].S+poc-1)<<"\n";
else cout<<gl[a]-Read(odw[a].S+poc)<<"\n";
}
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBjb25zdCBOPTMwMDAwMSxwb2M9MTw8MTk7CmludCB0cmVlWzIqcG9jKzFdLGdsW05dLGw9MCx3LGEsYixjOwpwYWlyPGludCxpbnQ+b2R3W05dOwp2ZWN0b3I8aW50PmdbTl07Cgp2b2lkIGRmcyhpbnQgdil7CglsKys7CiAgICBvZHdbdl0uRj1sOwogICAgZm9yKGludCBpOmdbdl0pewogICAgICAgIGlmKG9kd1tpXS5GPT0wKSB7CiAgICAgICAgCWlmKGdsW2ldPT0wKSBnbFtpXT1nbFt2XSsxOwogICAgICAgIAlkZnMoaSk7CiAgICAgICAgfQogICAgICAgIAogICAgfQogICAgaWYoZ1t2XS5zaXplKCkhPTEpbCsrOwogICAgb2R3W3ZdLlM9bDsKfQoKdm9pZCBVcGRhdGUoaW50IHYsaW50IHAsaW50IGspewogICAgaWYoYjxwfHxrPGEpIHJldHVybjsKICAgIGlmKGE8PXAmJms8PWIpIHRyZWVbdl0rKzsKICAgIGVsc2V7CiAgICAgICAgVXBkYXRlKDIqdixwLChwK2spLzIpOyBVcGRhdGUoMip2KzEsKHAraykvMisxLGspOwogICAgfQp9CgppbnQgUmVhZChpbnQgdil7CiAgICB3PXRyZWVbdl07CiAgICB2Lz0yOwogICAgd2hpbGUodj4wKXsKICAgICAgICB3Kz10cmVlW3ZdOwogICAgICAgIHYvPTI7CiAgICB9CiAgICByZXR1cm4gdzsKfQoKaW50IG1haW4oKXsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CgljaW4udGllKDApOwogICAgaW50IG4sbTsKICAgIGNoYXIgeDsKICAgIGNpbj4+bjsKICAgIGZvcihpbnQgaT0xO2k8bjtpKyspewogICAgICAgIGNpbj4+YT4+YjsKICAgICAgICBnW2FdLnB1c2hfYmFjayhiKTsKICAgICAgICBnW2JdLnB1c2hfYmFjayhhKTsKICAgIH0KICAgIGRmcygxKTsKICAgIC8vZm9yKGludCBpPTE7aTw9bjtpKyspIGNvdXQ8PGdsW2ldPDwnICc7CiAgICBjaW4+Pm07CiAgICBmb3IoaW50IGk9MTtpPG4rbTtpKyspewogICAgICAgIGNpbj4+eDsKICAgICAgICBpZih4PT0nQScpewogICAgICAgICAgICBjaW4+PmE+PmI7CiAgICAgICAgICAgIC8vY291dDw8YTw8JyAnPDxiPDwnICc7CiAgICAgICAgICAgIC8vaWYoZ2xbYV0+Z2xbYl0pIHN3YXAoYSxiKTsKICAgICAgICAgICAgYT1vZHdbYl0uRitwb2M7CiAgICAgICAgICAgIGI9b2R3W2JdLlMrcG9jOwogICAgICAgICAgICAvL2NvdXQ8PGEtcG9jPDwnICc8PGItcG9jPDxlbmRsOwogICAgICAgICAgICBpZihhIT1iKSBVcGRhdGUoMSxwb2MsMipwb2MpOwogICAgICAgICAgICBlbHNlIHRyZWVbYV0rKzsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgY2luPj5hOwogICAgICAgICAgICBpZihvZHdbYV0uRiE9b2R3W2FdLlMpIGNvdXQ8PGdsW2FdLVJlYWQob2R3W2FdLlMrcG9jLTEpPDwiXG4iOwogICAgICAgICAgICBlbHNlIGNvdXQ8PGdsW2FdLVJlYWQob2R3W2FdLlMrcG9jKTw8IlxuIjsKICAgICAgICB9CiAgICB9Cn0=