#P1719. Shooting Contest

Shooting Contest

描述

欢迎参加一年一度的比特兰射击比赛。每位参赛者都将向一个目标射击,该目标是一个矩形网格。目标由位于 rrcc 列的 r×cr \times c 个方格组成。这些方格的颜色为白色或黑色。每列恰好有两个白色方格和 r2r-2 个黑色方格。行从上到下依次标记为 1,..,r1, .., r,列从左到右标记为 1,..,c1, .., c。射击者有 cc 发子弹。

如果每列恰好命中一个白色方格,并且不存在未被命中白色方格的行,那么 cc 发子弹的一轮射击就是正确的。如果存在这样的正确射击轮次,帮助射击者找到其中一种情况。

示例

考虑以下目标:

在连续的列 11223344 中,命中第 22331144 行白色方格的这一轮射击是正确的。

编写一个程序,用于:验证是否存在任何正确的射击轮次,若存在则找到其中一种。

输入

输入的第一行包含数据块的数量 xx1x51 \leq x \leq 5。接下来的行构成 xx 个数据块。第一个数据块从输入文件的第二行开始;每个后续数据块紧跟在前一个数据块之后。

每个数据块的第一行包含两个用单个空格分隔的整数 rrcc2rc10002 \leq r \leq c \leq 1000。这两个数分别是行数和列数。每个数据块接下来的 cc 行中,每行都包含两个用单个空格分隔的整数。在数据块的输入行 i+1i + 11ic1 \leq i \leq c)中,这两个整数是第 ii 列中白色方格所在行的标记。

输出

对于第 ii 个数据块(1ix1 \leq i \leq x),你的程序应在标准输出的第 ii 行上输出一个由 cc 个行标记组成的序列(用单个空格分隔),该序列构成在连续列 1122\dotscc 中对白色方格的正确命中情况;若不存在这样的射击轮次,则输出单词 “NO”。

输入数据 1

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

输出数据 1

2 3 1 4
NO

来源

CEOI 1997