from heapq import heappop,heappush from bisect import bisect N=int(input()) T=[list(map(int,input().split())) for i in range(N-1)] E=[[] for i in range(N)] for i in range(N-1): l,a=T[i] a-=1 E[a].append((i+1,l)) LEVEL=[1<<60]*N LEVEL[0]=0 Q=[(0,0)] while Q: x,level=heappop(Q) for to,lev in E[x]: if LEVEL[to]>max(level,lev): LEVEL[to]=max(level,lev) heappush(Q,(to,LEVEL[to])) SL=sorted(LEVEL) for i in range(N): if LEVEL[i]==1<<60: LEVEL[i]=-1 Q=int(input()) for tests in range(Q): com,x=map(int,input().split()) if com==1: print(bisect(SL,x)) else: print(LEVEL[x-1])