S - Association

解説を見る
  • 実行時間制限:5000 ms
  • メモリ制限:1073741824 Bytes
  • 配点:100
  • ジャッジ:Batch

問題文

ある日,GyaosくんはImosちゃんと 22 人で連想ゲームをすることになりました.
Imosちゃんは 11 以上 NN 以下の整数 AA を思い浮かべているとき,11 回連想すると,11 以上 NN 以下の整数 f(A)f(A) を代わりに思い浮かべます.
Imosちゃん「やっぱり,11 といったら 22 だよねー」
Gyaosくん「、、、ん?」
GyaosくんはImosちゃんの連想のルールが全く分かりません.この時,Imosちゃんは QQ 回の発言を行います.発言の内容は以下のうちの 22 つです.
Case1. 「やっぱり,AA といったら BB だよねー」
Case2. 「私さっき XXYY 回連想したから,今思い浮かべている数字分かる?」
Case1 のとき,1 A B が与えられます.このとき,f(A)=Bf(A)=B であることを意味し,これは不変です.また,Gyaosくんはそれを理解します.
Case2 のとき,2 X Y が与えられます.このとき,現時点でGyaosくんが理解している情報のみを用いてImosちゃんの質問の答えを出力してください.もし答えが 11 つに定まらないときは,-1 と出力してください.

制約

  • N,QN, Qは整数
  • 1N51041 \leq N \leq 5 \cdot 10^4
  • 1Q21051 \leq Q \leq 2 \cdot 10^5
  • Case1 のとき,AA は整数で,1AN1 \leq A \leq N
  • Case1 のとき,BB は整数で,1BN1 \leq B \leq N
  • Case2 のとき,XX は整数で,1XN1 \leq X \leq N
  • Case2 のとき,YY は整数で,1Y1091 \leq Y \leq 10^9

小課題

  1. (20点) N100,Q100,Y100N \leq 100, Q \leq 100, Y \leq 100
  2. (40点) NQN \leq Q, 始めの NN 回の発言でGyaosくんはImosちゃんの連想のルールをすべて理解する
  3. (40点) 追加の制約はない

入力

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

N QN~Q
Query1Query_1
Query2Query_2
......
QueryQQuery_Q

ここで QueryiQuery_iii 番目の発言を表し,以下のいずれかの形式で与えられる.

1 A B1~A~B

2 X Y2~X~Y

出力

問題文の指示に従ってすべての出力を改行区切りで出力せよ.

入力例1

3 7
1 1 2
2 2 1
1 2 3
2 1 2
1 3 1
2 2 3
2 3 9

出力例1

-1
3
2
3
  • 11 番目の発言:「やっぱり,11 といったら 22 だよねー」
  • 22 番目の発言:「私さっき 2211 回連想したから,今思い浮かべている数字分かる?」
    このとき,Gyaosくんは 1111 回連想したとき 22 であることしか理解していません.よって,思い浮かべている数字を一つに定めることができないので -1 と出力します.
  • 33 番目の発言:「やっぱり,22 といったら 33 だよねー」
  • 44 番目の発言:「私さっき 1122 回連想したから,今思い浮かべている数字分かる?」
    このとき,Gyaosくんは 1111 回連想すると 22 になり,2211 回連想すると 33 になることを理解しています.したがって,1122 回連想すると 33 となることがわかるので 3 と出力します.
  • 55 番目の発言:「やっぱり,33 といったら 11 だよねー」
  • 66 番目の発言:「私さっき 2233 回連想したから,今思い浮かべている数字分かる?」
    2233 回連想すると 22 となるので,2 と出力します.
  • 77 番目の発言:「私さっき 3399 回連想したから,今思い浮かべている数字分かる?」
    3399 回連想すると 33 となるので,3 と出力します.

この入力例は小課題1,3の制約を満たします.

入力例2

5 3
1 1 2
1 1 2
1 3 1

出力例2

同じ入力を受け取ることや,一度も出力しないこともあります.
この入力例は小課題1,3の制約を満たします.