//team : includenull
#include <cstdio>
using namespace std;
struct node
{
int value;
int ans;
int left,right,parent;
node(){
value = 0;
ans = 0;
left = 0;
right = 0;
parent = 0;
}
};
void make_tree(node arr[],int num){
if (arr[num].left == 0 && arr[num].right == 0){
if (arr[num].value == 0)
arr[num].ans = 1;
}
if (arr[num].left != 0){
make_tree(arr,arr[num].left);
arr[num].ans += arr[arr[num].left].ans;
}
if (arr[num].right != 0){
make_tree(arr,arr[num].right);
arr[num].ans += arr[arr[num].right].ans;
}
}
void update_parent(node arr[],int num,int inc){
if (num == 0)
return;
arr[num].ans += inc;
update_parent(arr,arr[num].parent,inc);
}
void update(node arr[],int num, int value){
int prev= arr[num].value;
arr[num].value += value;
if (arr[num].value == 0 && prev !=0){
arr[num].ans++;
update_parent(arr,arr[num].parent,1);
}
if (prev == 0 && arr[num].value != 0)
{
arr[num].ans--;
update_parent(arr,arr[num].parent,-1);
}
}
int main(){
int num,query,edge;
int a,b;
int i;
char choice;
scanf ("%d %d",&num,&query);
edge = num -1;
node arr[num + 2];
for (i=0;i<edge ; i++){
scanf ("%d %d",&a,&b);
if (arr[a].left == 0){
arr[a].left = b;
arr[b].parent = a;
}else{
arr[a].right = b;
arr[b].parent = a;
}
}
for (i=1; i<=num ; i++){
scanf ("%d",&a);
arr[i].value = a;
// printf ("%d %d ",i,arr[i].value);
}
make_tree(arr,1);
// for (i=1;i<=num;i++)
// {
// printf("num = %d, parent= %d, left= %d,right= %d,value= %d,ans= %d\n",i,arr[i].parent,arr[i].left,arr[i].right,arr[i].value,arr[i].ans );
// }
for (i=0 ; i<query; i++){
getchar_unlocked();
scanf ("%c %d",&choice,&a);
// printf ("%c %d\n",choice,a);
if (choice == 'Q')
{
//scanf ("%d",&a);
printf("%d\n",arr[a].ans );
}else if (choice == 'U'){
scanf ("%d",&b);
update (arr,a,b);
}else{
printf ("%d in else\n",choice);
}
// for (i=1;i<=num;i++)
// {
// printf("num = %d, parent= %d, left= %d,right= %d,value= %d,ans= %d\n",i,arr[i].parent,arr[i].left,arr[i].right,arr[i].value,arr[i].ans );
// }
}
// for (i=1;i<=num;i++)
// {
// printf("num = %d, parent= %d, left= %d,right= %d,value= %d,ans= %d\n",i,arr[i].parent,arr[i].left,arr[i].right,arr[i].value,arr[i].ans );
// }
return 0;
}
Ly90ZWFtIDogaW5jbHVkZW51bGwKCiNpbmNsdWRlIDxjc3RkaW8+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdCBub2RlCnsKCWludCB2YWx1ZTsKCWludCBhbnM7CglpbnQgbGVmdCxyaWdodCxwYXJlbnQ7CiAKCW5vZGUoKXsKCQl2YWx1ZSA9IDA7CgkJYW5zID0gMDsKCQlsZWZ0ID0gMDsKCQlyaWdodCA9IDA7CgkJcGFyZW50ID0gMDsKCX0KfTsKIAogCiAKdm9pZCBtYWtlX3RyZWUobm9kZSBhcnJbXSxpbnQgbnVtKXsKIAoJaWYgKGFycltudW1dLmxlZnQgPT0gMCAmJiBhcnJbbnVtXS5yaWdodCA9PSAwKXsKCQlpZiAoYXJyW251bV0udmFsdWUgPT0gMCkKCQkJYXJyW251bV0uYW5zID0gMTsKCX0KCWlmIChhcnJbbnVtXS5sZWZ0ICE9IDApewoJCW1ha2VfdHJlZShhcnIsYXJyW251bV0ubGVmdCk7CgkJYXJyW251bV0uYW5zICs9IGFyclthcnJbbnVtXS5sZWZ0XS5hbnM7Cgl9CglpZiAoYXJyW251bV0ucmlnaHQgIT0gMCl7CgkJbWFrZV90cmVlKGFycixhcnJbbnVtXS5yaWdodCk7CgkJYXJyW251bV0uYW5zICs9IGFyclthcnJbbnVtXS5yaWdodF0uYW5zOwoJfQp9CiAKdm9pZCB1cGRhdGVfcGFyZW50KG5vZGUgYXJyW10saW50IG51bSxpbnQgaW5jKXsKCWlmIChudW0gPT0gMCkKCQlyZXR1cm47CiAKCWFycltudW1dLmFucyArPSBpbmM7Cgl1cGRhdGVfcGFyZW50KGFycixhcnJbbnVtXS5wYXJlbnQsaW5jKTsKIAp9CiAKdm9pZCB1cGRhdGUobm9kZSBhcnJbXSxpbnQgbnVtLCBpbnQgdmFsdWUpewoJaW50IHByZXY9IGFycltudW1dLnZhbHVlOwoJYXJyW251bV0udmFsdWUgKz0gdmFsdWU7CgkKIAoJaWYgKGFycltudW1dLnZhbHVlID09IDAgJiYgcHJldiAhPTApewoJCWFycltudW1dLmFucysrOwoJCXVwZGF0ZV9wYXJlbnQoYXJyLGFycltudW1dLnBhcmVudCwxKTsKCX0KCQoJaWYgKHByZXYgPT0gMCAmJiBhcnJbbnVtXS52YWx1ZSAhPSAwKQoJewoJCWFycltudW1dLmFucy0tOwoJCXVwZGF0ZV9wYXJlbnQoYXJyLGFycltudW1dLnBhcmVudCwtMSk7Cgl9CiAKCQp9CiAKIAogCmludCBtYWluKCl7CglpbnQgbnVtLHF1ZXJ5LGVkZ2U7CglpbnQgYSxiOwoJaW50IGk7CgljaGFyIGNob2ljZTsKIAoJc2NhbmYgKCIlZCAlZCIsJm51bSwmcXVlcnkpOwoJZWRnZSA9IG51bSAtMTsKIAoJbm9kZSBhcnJbbnVtICsgMl07CiAKIAoJZm9yIChpPTA7aTxlZGdlIDsgaSsrKXsKCQlzY2FuZiAoIiVkICVkIiwmYSwmYik7CgkJaWYgKGFyclthXS5sZWZ0ID09IDApewoJCQlhcnJbYV0ubGVmdCA9IGI7CgkJCWFycltiXS5wYXJlbnQgPSBhOwoJCX1lbHNlewoJCQlhcnJbYV0ucmlnaHQgPSBiOwoJCQlhcnJbYl0ucGFyZW50ID0gYTsKCQl9Cgl9CiAKCWZvciAoaT0xOyBpPD1udW0gOyBpKyspewoJCXNjYW5mICgiJWQiLCZhKTsKCQlhcnJbaV0udmFsdWUgPSBhOwoJCS8vIHByaW50ZiAoIiVkICVkICAiLGksYXJyW2ldLnZhbHVlKTsKCX0KCQoJbWFrZV90cmVlKGFyciwxKTsKIAoJLy8gZm9yIChpPTE7aTw9bnVtO2krKykKCS8vIHsKCS8vIAlwcmludGYoIm51bSA9ICVkLCBwYXJlbnQ9ICVkLCBsZWZ0PSAlZCxyaWdodD0gJWQsdmFsdWU9ICVkLGFucz0gJWRcbiIsaSxhcnJbaV0ucGFyZW50LGFycltpXS5sZWZ0LGFycltpXS5yaWdodCxhcnJbaV0udmFsdWUsYXJyW2ldLmFucyApOwoJLy8gfQoJCglmb3IgKGk9MCA7IGk8cXVlcnk7IGkrKyl7CgkJCgkJZ2V0Y2hhcl91bmxvY2tlZCgpOwoJCXNjYW5mICgiJWMgJWQiLCZjaG9pY2UsJmEpOwoJCS8vIHByaW50ZiAoIiVjICVkXG4iLGNob2ljZSxhKTsKCQlpZiAoY2hvaWNlID09ICdRJykKCQl7CgkJCS8vc2NhbmYgKCIlZCIsJmEpOwoJCQlwcmludGYoIiVkXG4iLGFyclthXS5hbnMgKTsKCQl9ZWxzZSBpZiAoY2hvaWNlID09ICdVJyl7CgkJCXNjYW5mICgiJWQiLCZiKTsKCQkJdXBkYXRlIChhcnIsYSxiKTsKCQl9ZWxzZXsKCQkJcHJpbnRmICgiJWQgaW4gZWxzZVxuIixjaG9pY2UpOwoJCX0KCQkKCQkvLyBmb3IgKGk9MTtpPD1udW07aSsrKQoJCS8vIHsKCQkvLyAJcHJpbnRmKCJudW0gPSAlZCwgcGFyZW50PSAlZCwgbGVmdD0gJWQscmlnaHQ9ICVkLHZhbHVlPSAlZCxhbnM9ICVkXG4iLGksYXJyW2ldLnBhcmVudCxhcnJbaV0ubGVmdCxhcnJbaV0ucmlnaHQsYXJyW2ldLnZhbHVlLGFycltpXS5hbnMgKTsKCQkvLyB9Cgl9CgkKCS8vIGZvciAoaT0xO2k8PW51bTtpKyspCgkvLyB7CgkvLyAJcHJpbnRmKCJudW0gPSAlZCwgcGFyZW50PSAlZCwgbGVmdD0gJWQscmlnaHQ9ICVkLHZhbHVlPSAlZCxhbnM9ICVkXG4iLGksYXJyW2ldLnBhcmVudCxhcnJbaV0ubGVmdCxhcnJbaV0ucmlnaHQsYXJyW2ldLnZhbHVlLGFycltpXS5hbnMgKTsKCS8vIH0KIAoJCglyZXR1cm4gMDsKfSA=