#codethanksfestival2017h. [code_thanks_festival_2017_h]Union Sets
[code_thanks_festival_2017_h]Union Sets
問題文
最初、 という 個の集合が与えられます。
この後に、集合を併合する操作が 回行われます。
時刻 回目の操作では 要素 を持つ集合と 要素 を持つ集合を併合します。
ただし、要素 と要素 が既に同じ集合に属している場合には何も起こりません。
次に、 個の質問クエリが与えられ、 番目の質問クエリの内容は以下の通りです。
- 「要素 と 要素 が同じ集合に併合されるのは何回目の操作後ですか?」
回の操作後に 要素 と 要素 が 同じ集合に属さない場合には、-1
を出力してください。
そうでない場合、 回目の操作後に要素 と 要素 が同じ集合に属するので、最小の を出力してください。
制約
- 入力は全て整数である。
入力
入力は以下の形式で標準入力から与えられる。
出力
質問クエリの解答を 行出力せよ。
行目には、 番目のクエリの答えを出力せよ。
入力例 1
7 5
1 2
3 4
2 1
2 3
4 1
5
1 2
3 4
1 4
2 3
6 7
出力例 1
1
2
4
4
-1
まず、 つの集合 $\\{1\\},\\{2\\},\\{3\\},\\{4\\},\\{5\\},\\{6\\},\\{7\\}$ があります。
この後に、集合を併合する操作が 回あり、各操作の後の集合の状態は以下の通りです。
- 回目の操作の後
- 回目の操作の後
- 回目の操作の後
- 回目の操作の後
- 回目の操作の後
入力例 2
7 6
1 2
1 3
1 4
1 5
1 6
1 7
3
1 3
4 5
6 7
出力例 2
2
4
6
入力例 3
10 0
5
1 2
4 3
5 6
8 7
9 10
出力例 3
-1
-1
-1
-1
-1