#joi2021yo2e. [joi2021_yo2_e]スパイ 2 (Spy 2)

[joi2021_yo2_e]スパイ 2 (Spy 2)

問題文

JOI 国には NN 人の議員がおり,11 から NN までの番号がつけられている.JOI 国の大臣であるあなたは,議員の中にいるスパイを探し出そうとしている.あなたは各議員 ii (1leqqileqqN1 \\leqq i \\leqq N) について次のような情報を得た.

  • Ti=1T_i = 1 のとき,議員 ii はスパイである.
  • Ti=2T_i = 2 のとき,議員 ii はスパイではない.
  • Ti=3T_i = 3 のとき,議員 ii がスパイであるかどうかは不明である.

更に聞き取り調査を行った結果,新たに MM 個の情報を得ることができた.jj 番目の聞き取り調査の情報 (1leqqjleqqM1 \\leqq j \\leqq M) は,議員 AjA_j (1leqqAjleqqN1 \\leqq A_j \\leqq N) が「議員 BjB_j (1leqqBjleqqN1 \\leqq B_j \\leqq N) はスパイであり,かつ議員 CjC_j (1leqqCjleqqN1 \\leqq C_j \\leqq N) はスパイでない」と証言したというものである.

ただし,議員 AjA_j がスパイであれば,jj 番目の聞き取り調査の情報における証言は事実とは異なる.すなわち,もし議員 AjA_j がスパイであれば,「議員 BjB_j はスパイである」「議員 CjC_j はスパイでない」のうち,少なくとも一方は事実ではない.一方で,議員 AjA_j がスパイでないとき,jj 番目の聞き取り調査の情報における証言は事実かもしれないし,そうでないかもしれない.

各議員の情報と,聞き取り調査の結果が与えられるので,それら N+MN + M 個の情報が矛盾しているかを判定し,矛盾していないなら,それぞれの議員がスパイかどうかを求めるプログラムを作成せよ.N+MN + M 個の情報と合致する答えが複数存在する場合は,そのうちどれを出力してもよい.

制約

  • 1leqqNleqq300,0001 \\leqq N \\leqq 300\\,000
  • 1leqqMleqq300,0001 \\leqq M \\leqq 300\\,000
  • 1leqqTileqq31 \\leqq T_i \\leqq 3 (1leqqileqqN1 \\leqq i \\leqq N).
  • 1leqqAjleqqN1 \\leqq A_j \\leqq N (1leqqjleqqM1 \\leqq j \\leqq M).
  • 1leqqBjleqqN1 \\leqq B_j \\leqq N (1leqqjleqqM1 \\leqq j \\leqq M).
  • 1leqqCjleqqN1 \\leqq C_j \\leqq N (1leqqjleqqM1 \\leqq j \\leqq M).
  • AjneqBjA_j \\neq B_j (1leqqjleqqM1 \\leqq j \\leqq M).
  • AjneqCjA_j \\neq C_j (1leqqjleqqM1 \\leqq j \\leqq M).
  • BjneqCjB_j \\neq C_j (1leqqjleqqM1 \\leqq j \\leqq M).

小課題

  1. (77 点) Nleqq16N \\leqq 16Mleqq100M \\leqq 100
  2. (3838 点) Nleqq3,000N \\leqq 3\\,000Mleqq3,000M \\leqq 3\\,000
  3. (5555 点) 追加の制約はない.

入力

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

NN MM T1T_1 T2T_2 cdots\\cdots TNT_N A1A_1 B1B_1 C1C_1 A2A_2 B2B_2 C2C_2 vdots\\vdots AMA_M BMB_M CMC_M

出力

標準出力に出力せよ.

与えられた情報が矛盾している場合,-111 行で出力せよ.

そうでない場合,出力は NN 行からなる.ii 行目 (1leqqileqqN1 \\leqq i \\leqq N) には議員 ii がスパイである場合 11 を,議員 ii がスパイでない場合 22 を出力せよ.N+MN + M 個の情報と合致する答えが複数存在する場合,そのうちどれを出力してもよい.


入力例 1

4 1
1 3 2 3
1 2 3

出力例 1

1
2
2
1

出力例 11 において議員 11 はスパイであり,「議員 22 はスパイであり,かつ議員 33 はスパイでない」という証言は議員 22 がスパイでないため事実と異なる.したがって,出力例 11 は与えられた情報に合致しており,正解となる.

この他に,議員 11 のみがスパイであり,他の議員はスパイではない,という答えも正解となる.


入力例 2

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

出力例 2

-1

議員 33 がスパイであるとすると,11 番目の聞き取り調査の情報と合致しない.議員 33 がスパイでないとすると,22 番目の聞き取り調査の情報と合致しない.情報が矛盾しているため,-1 を出力する.


入力例 3

3 2
1 2 2
2 1 3
2 3 1

出力例 3

1
2
2

入力例 33 において,すべての議員はスパイかそうでないかの情報が与えられている.これらは聞き取り調査の情報とも合致しているため,出力例 33 が唯一の正解となる.スパイでない議員の証言は,事実であるかもしれないし,そうでないかもしれないことに注意せよ.