Émile 的梦境中经常出现人或动物变形为其他事物的场景。Émile 希望通过制作第一部黑白动画短片,向大家展示他梦境中迷人的世界。醒来后,Émile 只记得梦中出现的初始形态和最终形态,而不记得中间的变换过程,因此他请求你通过详细说明从第一幅图像变换到第二幅图像的步骤来重现这些“变形”。
Émile 梦中的图像不仅仅是普通的黑白图像,它们必须满足以下三个约束条件。首先,图像边界上的所有像素(最左列、最右列、最顶行和最底行)颜色必须相同。其次,图像不包含任何形式为 $2 \times 2$ 的正方形。
第三个约束条件更为复杂,描述如下:我们将图像细分为若干区域,这些区域定义为图像中连通的单色区域,即它们构成了像素的最细划分,使得任何两个颜色相同的相邻像素都处于同一个区域内。如果两个区域包含相邻的像素,则认为它们是相邻的。在 Émile 的图像中,每个区域最多与另外两个区域相邻,且包含边界像素的区域最多与一个其他区域相邻。
给定两幅大小均为 $W \times H$ 的黑白图像,你的目标是找到一种将第一幅图像变换为第二幅图像的“变形”。从图像 $A$ 到图像 $B$ 的变形是一个以 $A$ 开始并以 $B$ 结束的图像序列,满足:
- 每幅图像(第一幅除外)都可以通过翻转前一幅图像中的一个像素得到;
- 每幅图像都满足上述三个约束条件;
- 变形过程中,每种颜色的区域数量保持不变。
输入格式
输入的第一行包含两个空格分隔的整数:$W$ 和 $H$。接下来 $H$ 行描述第一幅图像,按从上到下的顺序,每行包含 $W$ 个字符,描述该行 $W$ 个像素,从左到右排列:若第 $k$ 个像素为白色,则字符为 '.';若为黑色,则字符为 '#'。最后 $H$ 行以相同的格式描述第二幅图像。
输出格式
如果不存在变形,输出一行包含单词 "IMPOSSIBLE"。否则,输出应描述一种可能的变形:如果第 $(k+1)$ 幅图像是通过翻转第 $c$ 列第 $r$ 行的像素(其中 $0 \le c < W$ 且 $0 \le r < H$,$c=0$ 表示最左列,$r=0$ 表示最顶行)从第 $k$ 幅图像得到的,则第 $k$ 行输出包含一对坐标 $(c,r)$。
数据范围
- $1 \le H \le 64$
- $1 \le W \le 103$
- Émile 的初始图像和最终图像互不相同。
- 输出应包含最多 $250\,000$ 次像素翻转。
样例
输入格式 1
4 3 .... .#.. .... .... ..#. ....
输出格式 1
2 1 1 1
输入格式 2
9 12 ......... ...###... ...#.#... .#######. ...###... ...###... .#..#.... .#######. ...###.#. ...###... ..##.##.. ......... ......... ..#####.. ..##.##.. ..#...#.. ..#.#.#.. ..#...#.. ..#####.. ...#.#... ...#.#... ...#.#... .###.###. .........
输出格式 2
IMPOSSIBLE