#2486. 翻格子游戏

翻格子游戏

题目描述

约翰知道,那些高智力又快乐的奶牛产奶量特别高.所以他做了一个翻瓦片的益智游戏来娱乐奶牛.

在一个M×N(1\red{M\times N(1≤}M\red{M,}N\red{N≤}15)\red{15)}的骨架上,每一个格子里都有一个可以翻转的瓦片.瓦片的一面是黑色的,而另一面是白色的.对一个瓦片进 行翻转,可以使黑变白,也可以使白变黑.

然而,奶牛们的蹄子是如此的巨大而且笨拙,所以她们翻转一个瓦片的时候,与之有公共边的相邻瓦片也都被翻转了.那么,这些奶牛们最少需要多少次翻转,使所有的瓦片都变 成白面向上呢?

如杲可以做到,输出字典序最小的结果(将结果当成字符串处理).如果不能做到,输出"IMPOSSIBLE\red{IMPOSSIBLE}".

输入格式

1\red{1}行输入M\red{M}N\red{N}

之后M\red{M}N\red{N}列,输入游戏开始时的瓦片状态.

0\red{0}表示白面向上,1\red{1}表示黑面向上.

输出格式

输出M\red{M}行,每行N\red{N}个用空格隔开的整数,表示对应的格子进行了多少次翻转.

样例

输入样例

4 4
1 0 0 1
0 1 1 0
0 1 1 0
1 0 0 1

输出样例

0 0 0 0
1 0 0 1
1 0 0 1
0 0 0 0

提示

输出详情:

翻到第2\red{2}行第1\red{1}列后,电路板将如下所示:

0 0 0 1
1 0 1 0
1 1 1 0
1 0 0 1

翻到第2\red{2}行第4\red{4}列后,电路板将如下所示:

0 0 0 0
1 0 0 1
1 1 1 1
1 0 0 1

翻到第3\red{3}行第1\red{1}列后,电路板将如下所示:

0 0 0 0
0 0 0 1
0 0 1 1
0 0 0 1

翻到第3\red{3}行第4\red{4}列后,电路板将如下所示:

0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

另一种解决方案可能是:

0 1 1 0
0 0 0 0
0 0 0 0
0 1 1 0

但这个解决方案在词典编纂上高于上述解决方案。