#define rep(i,n) for(int i=0;i<(int)(n);i++) #define ALL(v) v.begin(),v.end() typedef long long ll; #include using namespace std; vector G[200200]; const int INF=1e9+7; int main(){ ios::sync_with_stdio(false); std::cin.tie(nullptr); int n; cin>>n; vector L(n),A(n); for(int i=1;i>L[i]>>A[i]; A[i]--; G[i].push_back(A[i]); G[A[i]].push_back(i); } vector P(n,INF); auto dfs=[&](auto dfs,int v,int p,int d)->void{ d=max(d,L[v]); P[v]=d; for(auto nv:G[v]){ if(nv==p) continue; dfs(dfs,nv,v,d); } }; dfs(dfs,0,-1,0); map m; rep(i,n) m[P[i]]++; int k=m.size(); vector B,C; for(auto [b,c]:m){ B.push_back(b); C.push_back(c); } vector S(k); S[0]=C[0]; for(int i=1;i>q; while(q--){ int c,x; cin>>c>>x; if(c==1){ auto a=upper_bound(ALL(B),x)-B.begin(); a--; cout<