1 #include<cstdio>
2 const int N=500005;
3 int head[N],t[N],s[N],fa[N],l[N],r[N];
4 struct ee{int to,next;}e[N];
5 int cnt,top,timer,n;
6 void ins(int u,int v){
7 e[++cnt].to=v,e[cnt].next=head[u],head[u]=cnt;
8 e[++cnt].to=u,e[cnt].next=head[v],head[v]=cnt;
9 }
10
11 void dfs(){
12 s[++top]=1;fa[1]=1;
13 while(top){
14 int now=s[top],f=fa[top--];
15 if(!l[now]) {
16 l[now]=++timer;s[++top]=now;
17 for(int i=head[now];i;i=e[i].next){
18 int v=e[i].to;if(v==f) continue;
19 if(!l[v]){
20 s[++top]=v;
21 fa[top]=now;
22 }
23 }
24 }else r[now]=++timer;
25 }
26 }
27
28 void updata(int x,int add){
29 for(int i=x;i<=n+n;i+=(i&(-i))) t[i]+=add;
30 }
31
32 void ask(int x)
33 {
34 int ans=-1;
35 for(int i=x;i;i-=(i&(-i)))
36 ans+=t[i];
37 printf("%d\n",ans);
38 }
39
40 int main(){
41 scanf("%d",&n);
42 int u,v,m,x,y;
43 for(int i=1;i<n;i++){
44 scanf("%d%d",&u,&v);
45 ins(u,v);
46 }
47 dfs();
48 for(int i=1;i<=n;i++) {
49 updata(l[i],1);updata(r[i],-1);
50 }
51 scanf("%d",&m);
52 char ch[5];
53 for(int i=1;i<=n+m-1;i++){
54 scanf("%s",ch);
55 if(ch[0]==‘A‘){
56 scanf("%d%d",&x,&y);
57 updata(l[y],-1),updata(r[y],1);
58 }
59 else {
60 scanf("%d",&x);
61 ask(l[x]);
62 }
63 }
64 }