#include <bits/stdc++.h>
#define ll long long
const ll MAXN=5e5;
using namespace std;
ll n,q,tin[MAXN+5],tout[MAXN+5],cur=0,par[MAXN+5];
vector<ll> adj[MAXN+5];
void dfs(ll u){
tin[u]=++cur;
for(ll v:adj[u]){
if(v==par[u]) continue;
par[v]=u;
dfs(v);
}
tout[u]=cur;
}
ll t[4*MAXN+5],lazy[4*MAXN+5];
void push(ll v,ll l,ll r){
if(lazy[v]==1e18) return;
ll m=(l+r)/2;
t[2*v]=(m-l+1)*lazy[v];
lazy[2*v]=lazy[v];
t[2*v+1]=(r-m)*lazy[v];
lazy[2*v+1]=lazy[v];
lazy[v]=1e18;
}
void update(ll v,ll tl,ll tr,ll l,ll r,ll val){
if(l>r || l==0) return;
if(tl==l && tr==r){
t[v]=(r-l+1)*val;
lazy[v]=val;
}
else{
push(v,tl,tr);
ll tm=(tl+tr)/2;
update(2*v,tl,tm,l,min(r,tm),val);
update(2*v+1,tm+1,tr,max(l,tm+1),r,val);
t[v]=t[2*v]+t[2*v+1];
}
}
ll query(ll v,ll tl,ll tr,ll l,ll r){
if(l>r) return 0;
if(tl==l && tr==r) return t[v];
else{
push(v,tl,tr);
ll tm=(tl+tr)/2;
return query(2*v,tl,tm,l,min(r,tm))+query(2*v+1,tm+1,tr,max(l,tm+1),r);
}
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);
if(fopen("skibidi.inp","r")){
freopen("skibidi.inp","r",stdin);
freopen("skibidi.out","w",stdout);
}
cin>>n;
for(int i=1;i<n;i++){
ll u,v;
cin>>u>>v;
adj[u].push_back(v);
adj[v].push_back(u);
}
dfs(1);
for(int i=0;i<=4*MAXN;i++) lazy[i]=1e18;
cin>>q;
while(q--){
ll type,u;
cin>>type>>u;
if(type==1){
ll sum=query(1,1,n,tin[u],tout[u]);
if(sum!=(tout[u]-tin[u]+1)) update(1,1,n,tin[par[u]],tin[par[u]],0);
update(1,1,n,tin[u],tout[u],1);
}
else if(type==2){
update(1,1,n,tin[u],tin[u],0);
}
else{
ll sum=query(1,1,n,tin[u],tout[u]);
if(sum!=(tout[u]-tin[u]+1)) cout<<0;
else cout<<1;
cout<<'\n';
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCmNvbnN0IGxsIE1BWE49NWU1Owp1c2luZyBuYW1lc3BhY2Ugc3RkOwpsbCBuLHEsdGluW01BWE4rNV0sdG91dFtNQVhOKzVdLGN1cj0wLHBhcltNQVhOKzVdOwp2ZWN0b3I8bGw+IGFkaltNQVhOKzVdOwp2b2lkIGRmcyhsbCB1KXsKICAgIHRpblt1XT0rK2N1cjsKICAgIGZvcihsbCB2OmFkalt1XSl7CiAgICAgICAgaWYodj09cGFyW3VdKSBjb250aW51ZTsKICAgICAgICBwYXJbdl09dTsKICAgICAgICBkZnModik7CiAgICB9CiAgICB0b3V0W3VdPWN1cjsKfQpsbCB0WzQqTUFYTis1XSxsYXp5WzQqTUFYTis1XTsKdm9pZCBwdXNoKGxsIHYsbGwgbCxsbCByKXsKICAgIGlmKGxhenlbdl09PTFlMTgpIHJldHVybjsKICAgIGxsIG09KGwrcikvMjsKICAgIHRbMip2XT0obS1sKzEpKmxhenlbdl07CiAgICBsYXp5WzIqdl09bGF6eVt2XTsKICAgIHRbMip2KzFdPShyLW0pKmxhenlbdl07CiAgICBsYXp5WzIqdisxXT1sYXp5W3ZdOwogICAgbGF6eVt2XT0xZTE4Owp9CnZvaWQgdXBkYXRlKGxsIHYsbGwgdGwsbGwgdHIsbGwgbCxsbCByLGxsIHZhbCl7CiAgICBpZihsPnIgfHwgbD09MCkgcmV0dXJuOwogICAgaWYodGw9PWwgJiYgdHI9PXIpewogICAgICAgIHRbdl09KHItbCsxKSp2YWw7CiAgICAgICAgbGF6eVt2XT12YWw7CiAgICB9CiAgICBlbHNlewogICAgICAgIHB1c2godix0bCx0cik7CiAgICAgICAgbGwgdG09KHRsK3RyKS8yOwogICAgICAgIHVwZGF0ZSgyKnYsdGwsdG0sbCxtaW4ocix0bSksdmFsKTsKICAgICAgICB1cGRhdGUoMip2KzEsdG0rMSx0cixtYXgobCx0bSsxKSxyLHZhbCk7CiAgICAgICAgdFt2XT10WzIqdl0rdFsyKnYrMV07CiAgICB9Cn0KbGwgcXVlcnkobGwgdixsbCB0bCxsbCB0cixsbCBsLGxsIHIpewogICAgaWYobD5yKSByZXR1cm4gMDsKICAgIGlmKHRsPT1sICYmIHRyPT1yKSByZXR1cm4gdFt2XTsKICAgIGVsc2V7CiAgICAgICAgcHVzaCh2LHRsLHRyKTsKICAgICAgICBsbCB0bT0odGwrdHIpLzI7CiAgICAgICAgcmV0dXJuIHF1ZXJ5KDIqdix0bCx0bSxsLG1pbihyLHRtKSkrcXVlcnkoMip2KzEsdG0rMSx0cixtYXgobCx0bSsxKSxyKTsKICAgIH0KfQppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApOwogICAgaWYoZm9wZW4oInNraWJpZGkuaW5wIiwiciIpKXsKICAgICAgICBmcmVvcGVuKCJza2liaWRpLmlucCIsInIiLHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJza2liaWRpLm91dCIsInciLHN0ZG91dCk7CiAgICB9CiAgICBjaW4+Pm47CiAgICBmb3IoaW50IGk9MTtpPG47aSsrKXsKICAgICAgICBsbCB1LHY7CiAgICAgICAgY2luPj51Pj52OwogICAgICAgIGFkalt1XS5wdXNoX2JhY2sodik7CiAgICAgICAgYWRqW3ZdLnB1c2hfYmFjayh1KTsKICAgIH0KICAgIGRmcygxKTsKICAgIGZvcihpbnQgaT0wO2k8PTQqTUFYTjtpKyspIGxhenlbaV09MWUxODsKICAgIGNpbj4+cTsKICAgIHdoaWxlKHEtLSl7CiAgICAgICAgbGwgdHlwZSx1OwogICAgICAgIGNpbj4+dHlwZT4+dTsKICAgICAgICBpZih0eXBlPT0xKXsKICAgICAgICAgICAgbGwgc3VtPXF1ZXJ5KDEsMSxuLHRpblt1XSx0b3V0W3VdKTsKICAgICAgICAgICAgaWYoc3VtIT0odG91dFt1XS10aW5bdV0rMSkpIHVwZGF0ZSgxLDEsbix0aW5bcGFyW3VdXSx0aW5bcGFyW3VdXSwwKTsKICAgICAgICAgICAgdXBkYXRlKDEsMSxuLHRpblt1XSx0b3V0W3VdLDEpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKHR5cGU9PTIpewogICAgICAgICAgICB1cGRhdGUoMSwxLG4sdGluW3VdLHRpblt1XSwwKTsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgbGwgc3VtPXF1ZXJ5KDEsMSxuLHRpblt1XSx0b3V0W3VdKTsKICAgICAgICAgICAgaWYoc3VtIT0odG91dFt1XS10aW5bdV0rMSkpIGNvdXQ8PDA7CiAgICAgICAgICAgIGVsc2UgY291dDw8MTsKICAgICAgICAgICAgY291dDw8J1xuJzsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQo=