/*
Author: Cadocx
Codeforces: https://c...content-available-to-author-only...s.com/profile/Kadoc
VNOJ: oj.vnoi.info/user/Cadoc
*/
#include <bits/stdc++.h>
using namespace std;
// input/output
#define fastIO ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define el cout << '\n'
#define debug(x) cout << #x << " = " << x << '\n'
#define execute cerr << "Time elapsed: " << (1.0 * clock() / CLOCKS_PER_SEC) << "s"
// #pragma GCC optimize("O2", "unroll-loops", "Ofast")
// #pragma GCC target("avx,avx2,fma")
//data type
#define ll long long
#define ull unsigned long long
#define pii pair<int, int>
#define pll pair<ll, ll>
#define piv pair<int, vector<int>>
#define vi vector<int>
#define vl vector<ll>
#define vc vector<char>
template<typename T> bool maximize(T &res, const T &val) { if (res < val){ res = val; return 1; }; return 0; }
template<typename T> bool minimize(T &res, const T &val) { if (res > val){ res = val; return 1; }; return 0; }
//STL
#define sz(x) (int)(x).size()
#define FOR(i,l,r) for(auto i = l; i <= r; i++)
#define FORD(i,r,l) for(auto i = r; i >= l; i--)
#define forin(i,a) for(auto i : a)
#define pb push_back
#define eb emplace_back
#define pf push_front
#define all(x) (x).begin(), (x).end()
#define fi first
#define se second
//bitmask
#define bitcnt(n) __builtin_popcount(n)
#define mask(i) (1 << (i))
#define bit(n, i) (((n) >> (i)) & 1)
#define set_on(n, i) ((n) | mask(i))
#define set_off(n, i) ((n) & ~mask(i))
//constant
#define N 100005
#define MOD 1000000007
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define base 31
#define Kadoc 0
int n, q;
int in[N], out[N], Timer = 0;
int st[2][N * 4], lz[2][N * 4];
vector<int> g[N];
void dfs(int u, int p = -1){
in[u] = ++Timer;
for(int v:g[u]) if(v != p) dfs(v, u);
out[u] = Timer;
}
void push(int o, int id, int l, int r){
if(!lz[o][id]) return;
st[o][id] = lz[o][id];
if(l != r) lz[o][id * 2] = lz[o][id * 2 + 1] = lz[o][id];
lz[o][id] = 0;
}
void upd(int o, int id, int l, int r, int u, int v, int x){
push(o, id, l, r);
if(v < l || r < u) return;
if(u <= l && r <= v){
lz[o][id] = x;
push(o, id, l, r);
return;
}
int m = (l+r)>>1;
upd(o, id * 2, l, m, u, v, x);
upd(o, id * 2 + 1, m+1, r, u, v, x);
st[o][id] = max(st[o][id * 2], st[o][id * 2 + 1]);
}
int get(int o, int id, int l, int r, int u, int v){
push(o, id, l, r);
if(v < l || r < u) return 0;
if(u <= l && r <= v) return st[o][id];
int m = (l+r)>>1;
return max(get(o, id * 2, l, m, u, v), get(o, id * 2 + 1, m+1, r, u, v));
}
void solve(){
cin >> n;
FOR(i, 1, n-1){
int u, v; cin >> u >> v;
g[u].eb(v);
g[v].eb(u);
}
dfs(1);
cin >> q;
FOR(i, 1, q){
int op, u; cin >> op >> u;
if(op == 1){
// in[u] -> out[u]
upd(1, 1, 1, n, in[u], out[u], i);
}
else if(op == 2){
// in[u]
upd(0, 1, 1, n, in[u], in[u], i);
}
else{
// trang thai la 0: la cai thao tac xoa xay sau thao tac them
// txoa > tthem
// t0[in[u] -> out[u]] > t1[in[u]]
// trang thai la 1: la cai thoa tac them xay ra sau thac tac xoa
// txoa < tthem
// t0[in[u] -> out[u]] < t1[in[u]]
int t0 = get(0, 1, 1, n, in[u], out[u]);
int t1 = get(1, 1, 1, n, in[u], in[u]);
if(t0 >= t1) cout << 0 << '\n';
else cout << 1 << '\n';
}
}
}
int main(){
#define NAME "TASK"
if(fopen(NAME".inp", "r")){
freopen(NAME".inp", "r", stdin);
freopen(NAME".out", "w", stdout);
}
fastIO;
if(Kadoc){
int tc; cin >> tc;
while(tc--){
solve();
}
} else solve();
}
LyoKICAgIEF1dGhvcjogQ2Fkb2N4CiAgICBDb2RlZm9yY2VzOiBodHRwczovL2MuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnMuY29tL3Byb2ZpbGUvS2Fkb2MKICAgIFZOT0o6IG9qLnZub2kuaW5mby91c2VyL0NhZG9jCiovCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIGlucHV0L291dHB1dAojZGVmaW5lIGZhc3RJTyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApLCBjaW4udGllKDApLCBjb3V0LnRpZSgwKQojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwojZGVmaW5lIGRlYnVnKHgpIGNvdXQgPDwgI3ggPDwgIiA9ICIgPDwgeCA8PCAnXG4nCiNkZWZpbmUgZXhlY3V0ZSBjZXJyIDw8ICJUaW1lIGVsYXBzZWQ6ICIgPDwgKDEuMCAqIGNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQykgPDwgInMiCi8vICNwcmFnbWEgR0NDIG9wdGltaXplKCJPMiIsICJ1bnJvbGwtbG9vcHMiLCAiT2Zhc3QiKQovLyAjcHJhZ21hIEdDQyB0YXJnZXQoImF2eCxhdngyLGZtYSIpCi8vZGF0YSB0eXBlCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIHBpaSBwYWlyPGludCwgaW50PgojZGVmaW5lIHBsbCBwYWlyPGxsLCBsbD4KI2RlZmluZSBwaXYgcGFpcjxpbnQsIHZlY3RvcjxpbnQ+PgojZGVmaW5lIHZpIHZlY3RvcjxpbnQ+CiNkZWZpbmUgdmwgdmVjdG9yPGxsPgojZGVmaW5lIHZjIHZlY3RvcjxjaGFyPgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIG1heGltaXplKFQgJnJlcywgY29uc3QgVCAmdmFsKSB7IGlmIChyZXMgPCB2YWwpeyByZXMgPSB2YWw7IHJldHVybiAxOyB9OyByZXR1cm4gMDsgfQp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIG1pbmltaXplKFQgJnJlcywgY29uc3QgVCAmdmFsKSB7IGlmIChyZXMgPiB2YWwpeyByZXMgPSB2YWw7IHJldHVybiAxOyB9OyByZXR1cm4gMDsgfQovL1NUTAojZGVmaW5lIHN6KHgpIChpbnQpKHgpLnNpemUoKQojZGVmaW5lIEZPUihpLGwscikgZm9yKGF1dG8gaSA9IGw7IGkgPD0gcjsgaSsrKQojZGVmaW5lIEZPUkQoaSxyLGwpIGZvcihhdXRvIGkgPSByOyBpID49IGw7IGktLSkKI2RlZmluZSBmb3JpbihpLGEpIGZvcihhdXRvIGkgOiBhKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGViIGVtcGxhY2VfYmFjawojZGVmaW5lIHBmIHB1c2hfZnJvbnQKI2RlZmluZSBhbGwoeCkgKHgpLmJlZ2luKCksICh4KS5lbmQoKQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCi8vYml0bWFzawojZGVmaW5lIGJpdGNudChuKSBfX2J1aWx0aW5fcG9wY291bnQobikKI2RlZmluZSBtYXNrKGkpICgxIDw8IChpKSkKI2RlZmluZSBiaXQobiwgaSkgKCgobikgPj4gKGkpKSAmIDEpCiNkZWZpbmUgc2V0X29uKG4sIGkpICgobikgfCBtYXNrKGkpKQojZGVmaW5lIHNldF9vZmYobiwgaSkgKChuKSAmIH5tYXNrKGkpKQovL2NvbnN0YW50CiNkZWZpbmUgTiAxMDAwMDUKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIElORiAweDNmM2YzZjNmCiNkZWZpbmUgTElORiAweDNmM2YzZjNmM2YzZjNmM2YKI2RlZmluZSBiYXNlIDMxCiNkZWZpbmUgS2Fkb2MgMAoKaW50IG4sIHE7CmludCBpbltOXSwgb3V0W05dLCBUaW1lciA9IDA7CmludCBzdFsyXVtOICogNF0sIGx6WzJdW04gKiA0XTsKdmVjdG9yPGludD4gZ1tOXTsKCnZvaWQgZGZzKGludCB1LCBpbnQgcCA9IC0xKXsKICAgIGluW3VdID0gKytUaW1lcjsKICAgIGZvcihpbnQgdjpnW3VdKSBpZih2ICE9IHApIGRmcyh2LCB1KTsKICAgIG91dFt1XSA9IFRpbWVyOwp9Cgp2b2lkIHB1c2goaW50IG8sIGludCBpZCwgaW50IGwsIGludCByKXsKICAgIGlmKCFseltvXVtpZF0pIHJldHVybjsKICAgIHN0W29dW2lkXSA9IGx6W29dW2lkXTsKICAgIGlmKGwgIT0gcikgbHpbb11baWQgKiAyXSA9IGx6W29dW2lkICogMiArIDFdID0gbHpbb11baWRdOwogICAgbHpbb11baWRdID0gMDsKfQoKdm9pZCB1cGQoaW50IG8sIGludCBpZCwgaW50IGwsIGludCByLCBpbnQgdSwgaW50IHYsIGludCB4KXsKICAgIHB1c2gobywgaWQsIGwsIHIpOwogICAgaWYodiA8IGwgfHwgciA8IHUpIHJldHVybjsKICAgIGlmKHUgPD0gbCAmJiByIDw9IHYpewogICAgICAgIGx6W29dW2lkXSA9IHg7CiAgICAgICAgcHVzaChvLCBpZCwgbCwgcik7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaW50IG0gPSAobCtyKT4+MTsKICAgIHVwZChvLCBpZCAqIDIsIGwsIG0sIHUsIHYsIHgpOwogICAgdXBkKG8sIGlkICogMiArIDEsIG0rMSwgciwgdSwgdiwgeCk7CiAgICBzdFtvXVtpZF0gPSBtYXgoc3Rbb11baWQgKiAyXSwgc3Rbb11baWQgKiAyICsgMV0pOwp9CgppbnQgZ2V0KGludCBvLCBpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2KXsKICAgIHB1c2gobywgaWQsIGwsIHIpOwogICAgaWYodiA8IGwgfHwgciA8IHUpIHJldHVybiAwOwogICAgaWYodSA8PSBsICYmIHIgPD0gdikgcmV0dXJuIHN0W29dW2lkXTsKICAgIGludCBtID0gKGwrcik+PjE7CiAgICByZXR1cm4gbWF4KGdldChvLCBpZCAqIDIsIGwsIG0sIHUsIHYpLCBnZXQobywgaWQgKiAyICsgMSwgbSsxLCByLCB1LCB2KSk7Cn0KCnZvaWQgc29sdmUoKXsKICAgIGNpbiA+PiBuOwogICAgRk9SKGksIDEsIG4tMSl7CiAgICAgICAgaW50IHUsIHY7IGNpbiA+PiB1ID4+IHY7CiAgICAgICAgZ1t1XS5lYih2KTsKICAgICAgICBnW3ZdLmViKHUpOwogICAgfQoKICAgIGRmcygxKTsKCiAgICBjaW4gPj4gcTsKICAgIEZPUihpLCAxLCBxKXsKICAgICAgICBpbnQgb3AsIHU7IGNpbiA+PiBvcCA+PiB1OwogICAgICAgIGlmKG9wID09IDEpewogICAgICAgICAgICAvLyBpblt1XSAtPiBvdXRbdV0KICAgICAgICAgICAgdXBkKDEsIDEsIDEsIG4sIGluW3VdLCBvdXRbdV0sIGkpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKG9wID09IDIpewogICAgICAgICAgICAvLyBpblt1XQogICAgICAgICAgICB1cGQoMCwgMSwgMSwgbiwgaW5bdV0sIGluW3VdLCBpKTsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgLy8gdHJhbmcgdGhhaSBsYSAwOiBsYSBjYWkgdGhhbyB0YWMgeG9hIHhheSBzYXUgdGhhbyB0YWMgdGhlbQogICAgICAgICAgICAvLyB0eG9hID4gdHRoZW0KICAgICAgICAgICAgLy8gdDBbaW5bdV0gLT4gb3V0W3VdXSA+IHQxW2luW3VdXQoKICAgICAgICAgICAgLy8gdHJhbmcgdGhhaSBsYSAxOiBsYSBjYWkgdGhvYSB0YWMgdGhlbSB4YXkgcmEgc2F1IHRoYWMgdGFjIHhvYQogICAgICAgICAgICAvLyB0eG9hIDwgdHRoZW0KICAgICAgICAgICAgLy8gdDBbaW5bdV0gLT4gb3V0W3VdXSA8IHQxW2luW3VdXQogICAgICAgICAgICBpbnQgdDAgPSBnZXQoMCwgMSwgMSwgbiwgaW5bdV0sIG91dFt1XSk7CiAgICAgICAgICAgIGludCB0MSA9IGdldCgxLCAxLCAxLCBuLCBpblt1XSwgaW5bdV0pOwogICAgICAgICAgICBpZih0MCA+PSB0MSkgY291dCA8PCAwIDw8ICdcbic7CiAgICAgICAgICAgIGVsc2UgY291dCA8PCAxIDw8ICdcbic7CiAgICAgICAgfQogICAgfQp9CgppbnQgbWFpbigpewogICAgI2RlZmluZSBOQU1FICJUQVNLIgogICAgaWYoZm9wZW4oTkFNRSIuaW5wIiwgInIiKSl7CiAgICAgICAgZnJlb3BlbihOQU1FIi5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKE5BTUUiLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KCiAgICBmYXN0SU87CiAgICAKICAgIGlmKEthZG9jKXsKICAgICAgICBpbnQgdGM7IGNpbiA+PiB0YzsKICAgICAgICB3aGlsZSh0Yy0tKXsKICAgICAgICAgICAgc29sdmUoKTsKICAgICAgICB9CiAgICB9IGVsc2Ugc29sdmUoKTsKfQ==