나가는 간선이 최대 하나인 방향 그래프에서 간선 삭제를 반영하며 a에서 시작한 걸음이 b에 닿는 거리를 구합니다.
정점이 NNN개인 방향 그래프가 있다. 이 그래프는 정점마다 나가는 간선이 최대 한 개라는 점이 특별하다. 다음 두 종류의 질의를 처리한다.
1 a
2 a b
경로의 길이는 지나는 간선의 개수다. 정점에서 나가는 간선이 최대 한 개이므로 aaa에서 출발하는 경로는 하나뿐이고, 그 경로를 따라가다 bbb에 처음 닿을 때까지 지난 간선의 수가 답이다. aaa와 bbb가 같으면 답은 0이다.
첫째 줄에 정점의 개수 NNN (1≤N≤1051 \le N \le 10^51≤N≤105)이 주어진다.
둘째 줄에 정수 NNN개 next1,next2,…,nextNnext_1, next_2, \dots, next_Nnext1,next2,…,nextN (0≤nexti≤N0 \le next_i \le N0≤nexti≤N)이 주어진다. nextinext_inexti는 정점 iii에서 정점 nextinext_inexti로 가는 간선이 있다는 뜻이고, nexti=0next_i = 0nexti=0이면 정점 iii에서 나가는 간선이 없다.
셋째 줄에 질의의 개수 MMM (1≤M≤1051 \le M \le 10^51≤M≤105)이 주어진다.
다음 MMM개의 줄에 질의가 한 줄에 하나씩 주어진다. 형식은 위에서 설명한 것과 같고, 1≤a,b≤N1 \le a, b \le N1≤a,b≤N이다.
2 a b 질의마다 답을 한 줄에 하나씩, 입력에 주어진 순서대로 출력한다.