#abc155f. [abc155_f]Perils in Parallel

[abc155_f]Perils in Parallel

问题陈述

在被阿德巴拉王国入侵后,炸弹被布设在了我们的国家AtCoder Kingdom之中。

幸运的是,我们的军队ABC设法得到了一个控制炸弹系统的设备。

我们国家布设了NN颗炸弹,编号为11NN,其中第ii颗炸弹布设在坐标AiA_i上。如果Bi=1B_i=1,表示第ii颗炸弹目前处于激活状态;如果Bi=0B_i=0,表示第ii颗炸弹目前处于未激活状态。

设备上有MM根绳子,编号为11MM。当我们剪断第jj根绳子时,在坐标LjL_jRjR_j之间(包括这两个坐标)所有布设的炸弹状态都会发生改变,即从激活状态转变为未激活状态,反之亦然。

请判断是否有可能同时关闭所有的炸弹。如果答案是肯定的,请输出应该剪断的一组绳子。

约束条件

  • 输入中的所有值都是整数。
  • 1N1051 \leq N \leq 10^5
  • 1Ai109 (1iN)1 \leq A_i \leq 10^9\ (1 \leq i \leq N)
  • AiA_i 两两不相同。
  • BiB_i 取值为 0011(1iN)(1 \leq i \leq N)
  • 1M2×1051 \leq M \leq 2 \times 10^5
  • 1LjRj109 (1jM)1 \leq L_j \leq R_j \leq 10^9\ (1 \leq j \leq M)

输入

输入以以下格式从标准输入中给出:

NN MM A1A_1 B1B_1 :: ANA_N BNB_N L1L_1 R1R_1 :: LML_M RMR_M

输出

如果无法同时关闭所有炸弹,请输出 -1。如果可以,请按如下方式输出一组应该剪断的绳子:

kk c1c_1 c2c_2 \dots ckc_k

这里,kk 是绳子的数量(可以为 00),c1,c2,,ckc_1, c_2, \dots, c_k 表示应该剪断的绳子的编号。必须满足 1c1<c2<<ckM1 \leq c_1 < c_2 < \dots < c_k \leq M


示例输入 1

3 4
5 1
10 1
8 0
1 10
4 5
6 7
8 9

示例输出 1

2
1 4

我们国家有三颗炸弹分别位于坐标551010,以及88处,其中坐标551010的炸弹已激活,坐标88的炸弹未激活。

剪断第一根绳子会改变坐标111010之间布设的所有炸弹的状态,也就是三颗炸弹。

剪断第四根绳子会改变坐标8899之间布设的炸弹的状态,也就是第三颗炸弹。

因此,通过剪断第一根和第四根绳子,我们可以同时关闭所有的炸弹。


示例输入 2

4 2
2 0
3 1
5 1
7 0
1 4
4 7

示例输出 2

-1

无论剪断哪些绳子,都无法同时关闭所有的炸弹。


示例输入 3

3 2
5 0
10 0
8 0
6 9
66 99

示例输出 3

0

所有的炸弹都已经关闭,因此我们不需要剪断任何绳子。


示例输入 4

12 20
536130100 1
150049660 1
79245447 1
132551741 0
89484841 1
328129089 0
623467741 0
248785745 0
421631475 0
498966877 0
43768791 1
112237273 0
21499042 142460201
58176487 384985131
88563042 144788076
120198276 497115965
134867387 563350571
211946499 458996604
233934566 297258009
335674184 555985828
414601661 520203502
101135608 501051309
90972258 300372385
255474956 630621190
436210625 517850028
145652401 192476406
377607297 520655694
244404406 304034433
112237273 359737255
392593015 463983307
150586788 504362212
54772353 83124235

示例输出 4

5
1 7 8 9 11

如果剪断不同的一组绳子都可以同时关闭所有的炸弹,输出其中任意一组即可。