AT_abc155_f [ABC155F] Perils in Parallel

Description

[problemUrl]: https://atcoder.jp/contests/abc155/tasks/abc155_f AlDebaran 王国の侵攻によって、AtCoder 王国の各地に爆弾が仕掛けられてしまいました。 幸いにも AtCoder 王国 ABC 隊の健闘により制御装置の一部が手に入ったので、あなたはこれを使って解除を試みることにしました。 仕掛けられた爆弾は $ N $ 個あり、$ 1 $ から $ N $ の番号がついています。爆弾 $ i $ は座標 $ A_i $ にあり、電源は $ B_i=1 $ のときオンに、$ B_i=0 $ のときオフになっています。 制御装置には $ M $ 本のコードがあり、$ 1 $ から $ M $ の番号がついています。コード $ j $ を切ると、座標が $ L_j $ 以上 $ R_j $ 以下の全ての爆弾の電源のオン・オフが切り替わります。 切るコードをうまく選ぶことで全ての爆弾の電源をオフにできるか判定し、できるならばそのようなコードの組合せを $ 1 $ つ出力してください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ M $ $ A_1 $ $ B_1 $ : $ A_N $ $ B_N $ $ L_1 $ $ R_1 $ : $ L_M $ $ R_M $

Output Format

全ての爆弾の電源をオフにすることが不可能であれば `-1` と出力せよ。可能であれば、それを達成するコードの組合せを次のように出力せよ。 > $ k $ $ c_1 $ $ c_2 $ $ \dots $ $ c_k $ ここで、$ k $ は切るコードの本数 ($ 0 $ でもよい) である。 また、$ c_1,\ c_2,\ \dots,\ c_k $ は切るコードの番号であり、$ 1\ \leq\ c_1\

Explanation/Hint

### 制約 - 入力はすべて整数 - $ 1\ \leq\ N\ \leq\ 10^5 $ - $ 1\ \leq\ A_i\ \leq\ 10^9\ (1\ \leq\ i\ \leq\ N) $ - $ A_i $ は互いに相異なる - $ B_i $ は $ 0 $ か $ 1 $ のいずれか $ (1\ \leq\ i\ \leq\ N) $ - $ 1\ \leq\ M\ \leq\ 2\ \times\ 10^5 $ - $ 1\ \leq\ L_j\ \leq\ R_j\ \leq\ 10^9\ (1\ \leq\ j\ \leq\ M) $ ### Sample Explanation 1 座標 $ 5,\ 10 $ に電源がオンの爆弾が、座標 $ 8 $ に電源がオフの爆弾があります。 コード $ 1 $ を切ると座標 $ 1 $ 以上 $ 10 $ 以下にある爆弾、つまり全ての爆弾の電源が切り替わります。 コード $ 4 $ を切ると座標 $ 8 $ 以上 $ 9 $ 以下にある爆弾、つまり爆弾 $ 3 $ のみの電源が切り替わります。 したがって、コード $ 1,\ 4 $ の $ 2 $ 本を切ることで全ての爆弾の電源がオフになります。 ### Sample Explanation 2 切るコードをどう選んでも、全ての爆弾の電源をオフにすることは不可能です。 ### Sample Explanation 3 はじめから全ての爆弾の電源がオフなので、コードを切る必要はありません。 ### Sample Explanation 4 条件を満たすコードの組合せが複数あり得る場合、どれを出力しても構いません。