#abc295g. [abc295_g]Minimum Reachable City

[abc295_g]Minimum Reachable City

問題文

NN 頂点の有向グラフ GSG_S があり、頂点には 11 から NN までの番号が付けられています。 GSG_S には N1N-1 本の辺があり、ii 本目 (1leqileqN1)(1\\leq i \\leq N-1) の辺は頂点 pi(1leqpileqi)p_i\\ (1\\leq p_i \\leq i) から頂点 i+1i+1 に伸びています。

NN 頂点の有向グラフ GG があり、頂点には 11 から NN までの番号が付けられています。 最初、GGGSG_S と一致しています。 GG に関するクエリが QQ 個与えられるので、与えられた順番に処理してください。クエリは次の 22 種類のいずれかです。

  • 1 u v : GG に頂点 uu から頂点 vv に伸びる辺を追加する。 このとき、以下の条件が満たされることが保証される。
    • uneqvu \\neq v
    • GSG_S 上で頂点 vv からいくつかの辺を辿ることで頂点 uu に到達可能である
  • 2 x : GG 上で頂点 xx からいくつかの辺を辿ることで到達可能な頂点 (頂点 xx を含む) のうち、最も番号が小さい頂点の番号を出力する。

制約

  • 2leqNleq2times1052\\leq N \\leq 2\\times 10^5
  • 1leqQleq2times1051\\leq Q \\leq 2\\times 10^5
  • 1leqpileqi1\\leq p_i\\leq i
  • 11 番目の形式のクエリについて、
    • 1lequ,vleqN1\\leq u,v \\leq N
    • uneqvu \\neq v
    • GSG_S 上で頂点 vv からいくつかの辺を辿ることで頂点 uu に到達可能である
  • 22 番目の形式のクエリについて、1leqxleqN1\\leq x \\leq N
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる。

NN p1p_1 p2p_2 dots\\dots pN1p_{N-1} QQ mathrmquery1\\mathrm{query}_1 mathrmquery2\\mathrm{query}_2 vdots\\vdots mathrmqueryQ\\mathrm{query}_Q

ただし、mathrmqueryi\\mathrm{query}_iii 個目のクエリを表しており、次のいずれかの形式で与えられる。

11 uu vv 22 xx

出力

22 番目の形式のクエリの回数を qq 回として、qq 行出力せよ。 j(1leqjleqq)j\\ (1\\leq j \\leq q) 行目には、22 番目の形式のクエリのうち jj 個目のものに対する答えを出力せよ。


入力例 1

5
1 2 3 3
5
2 4
1 4 2
2 4
1 5 1
2 4

出力例 1

4
2
1
  • 11 個目のクエリの時点で、GG 上で頂点 44 からいくつかの辺を辿ることで到達可能な頂点は 44 のみです。
  • 33 個目のクエリの時点で、GG 上で頂点 44 からいくつかの辺を辿ることで到達可能な頂点は 2,3,4,52,3,4, 5 です。
  • 55 個目のクエリの時点で、GG 上で頂点 44 からいくつかの辺を辿ることで到達可能な頂点は 1,2,3,4,51,2,3,4,5 です。

入力例 2

7
1 1 2 2 3 3
10
2 5
1 5 2
2 5
1 2 1
1 7 1
1 6 3
2 5
2 6
2 1
1 7 1

出力例 2

5
2
1
1
1