编程题
关灯游戏增强版
## 来源
Greater New York 2002 (ZOJ1354, POJ1222)
## 题目描述
5行6列按钮组成的矩阵,每个按钮下面有一盏灯。当按下一个按钮,该按钮和相邻4个按钮(上、下、左、右)的灯状态变反(如果是开着的,则关闭;如果是关闭的,则开起)。例如,在下图(a)中,如果作了"X"标记的按钮按下后,则各灯的状态如下图(b)所示,在该图中,阴影表示灯是开着的。游戏的目的是,从给定的初始状态出发,按下某些按钮使得所有灯都关闭。编写程序实现这一目的。

注意,按下一个按钮可能会取消另一个按钮按下的效果。如下图所示,按下第2行第3列和第5列的按钮后,第2行第4列的按钮的灯,由关变成开,然后又由开变成关。

另外请注意:
(1) 按钮按下的顺序不会影响最终的效果。
(2) 如果一个按钮按下两次,则第2次按下的效果只是取消了第1次按钮按下的效果,没有意义,所有没有哪个按钮需要按下2次。
(3) 要使得第1行的灯全关闭,只需要按下第2行中对应的按钮即可,重复这一过程,可以使得前面4行的灯全部关闭。同理,通过按下第2~6列的按钮,可以使得1~5列灯全部关闭。
## 输入描述
输入文件第1行为正整数n,表示测试数据的个数。每个测试数据占5行,每行有6个整数,这些整数用空格隔开,取值为0或1,0表示初始时灯是关闭的,1表示初始时灯是开着的。
## 输出描述
对每个测试数据,首先输出一行:"PUZZLE #m",其中m为测试数据的序号。然后输出5行,每行为6个整数,用空格隔开,取值也为0或1。这里的0和1含义跟上面的含义不一样,1表示该按钮要按下,0表示不按下。
## 样例输入
```txt
1
0 1 1 0 1 0
1 0 0 1 1 1
0 0 1 0 0 1
1 0 0 1 0 1
0 1 1 1 0 0
```
## 样例输出
```txt
PUZZLE #1
1 0 1 0 0 1
1 1 0 1 0 1
0 0 1 0 1 1
1 0 0 1 0 0
0 1 0 0 0 0
```