#ijpc2015g. [ijpc2015_g]IOI

[ijpc2015_g]IOI

问题

小纯带领着h1h-1名选手参加IOI(国际反转奥林匹克)比赛。

在IOI比赛中,小纯和选手们一起合作解决一个大小为h×wh×w的反转拼图。具体来说,团队中的每个人都负责一行,他们只能按压自己负责行的格子。

现在,就在IOI比赛的前夜,小纯因为紧急事情不得不回国。幸运的是,在团队中还有一个名叫纯纯的队友愿意代替小纯参加比赛,但是纯纯并不擅长解决反转拼图。

因此,小纯决定制作一个机器,当输入反转拼图的初始状态和团队负责的行号时,可以输出纯纯需要按压的格子的列号列表。

需要注意的是,反转拼图是一个由黑白格子构成的面板,每个人需要选择自己负责行上的一个格子,然后不断地反转选定的格子以及与其相邻的格子的颜色,最终将所有的格子都变成白色。


输入

输入通过标准输入给出,具体格式如下:

ww hh rr

aa

x1x_1 b1b_1 y1,1y_{1,1} y1,2y_{1,2} ... y1,b1y_{1,b1} ... ... xax_a bab_a ya,1y_{a,1} ya,2y_{a,2} ... ya,bay_{a,b_a}

其中,

  • 第一行输入包含三个整数w,h,rw,h,r,表示面板的列数、行数以及团队负责的行号。
  • 第二行输入一个整数aa,表示反转拼图的黑格子数量。
  • 接下来的aa行,每行描述一个黑格子的信息(xi,yi,j)(x_i,y_{i,j}),其中xix_i表示行号,yi,jy_{i,j}表示列号。请注意,每个黑格子的行号和列号都是唯一的。

输入保证满足以下条件:

  • 1w601 \leq w \leq 60
  • 1h1000000000000000000(=1018)1 \leq h \leq 1000000000000000000 (=10^{18})
  • 1rh1 \leq r \leq h
  • 1a1001 \leq a \leq 100
  • 对于 1ia1 \leq i \leq a,有
    • 1xih1 \leq x_i \leq h
    • 1biw1 \leq b_i \leq w
    • 1yi,1<yi,2<...<yi,biw1 \leq y_{i,1} < y_{i,2} < ... < y_{i,b_i} \leq w
    • xixj(ij)x_i \neq x_j (i \neq j)

部分分数限制条件:

subtask1(10分):w,h10w,h \leq 10

subtask2(25分):h10000h \leq 10000

subtask3(10分):h1000000h \leq 1000000

subtask4(25分):a10a \leq 10

subtask5(15分):a50a \leq 50

subtask6(15分):无额外限制

输出

输出格式如下:

nn y1y_1 y2y_2 ... yny_n

纯纯需要按压的格子列号列表为 rr 行的 y1,y2,...,yny_1,y_2,...,y_n 列。

需要注意的是,y1,y2,...,yny_1,y_2,...,y_n 列要以升序输出。(15:13)

另外,对于给定的输入,满足条件的输出是唯一的。


示例1

Input:

3 3 1
3
1 1 2
2 1 1
3 1 3

Output:

1 2

示例2

Input:

3 3 2
3
1 1 2
2 1 1
3 1 3

Output:

2 1 3

示例3

Input:

3 3 3
3
1 1 2
2 1 1
3 1 3

Output:

2 2 3

示例4

Input:

10 10 5
3
3 2 5 7
5 4 1 4 6 9
6 1 10

Output:

5 2 4 5 6 10