在经历了无数次不幸的意外事故以及随之而来的诉讼、和解、抗议和抵制之后,ACME 时钟制造商焦头烂额的高管们终于决定解决其灾难性的质量控制问题。多年来,人们一直知道他们生产的数字时钟中,液晶显示屏(LCD)的故障率高得令人无法接受,然而这些冷酷无情的人却一再忽视这个问题,甚至没有向他们倒霉的消费者发出任何警告!
你已被聘为质量顾问,以彻底终结这场闹剧。你的任务是编写一个自动化程序,用于测试时钟并找出其显示屏中的故障。
这些时钟的所有数字均使用标准的 7 段 LCD 显示(如图 D.1 左侧所示),外加两个用于显示“:”的小段,并以 24 小时制显示所有时间。午夜前一分钟是 23:59,午夜是 0:00。正常工作的时钟,“:”部分的段始终处于开启状态。图 D.1 右侧展示了每个数字使用七个段的表示方式。
图 D.1:每个数字的 LCD 显示。
你的程序将获得时钟在连续几分钟内的显示状态,尽管你并不知道这些显示开始的具体时间。部分 LCD 段已烧毁(永久关闭),部分段已烧入(永久开启)。你的程序必须尽可能确定哪些段肯定发生了故障,哪些段肯定处于正常工作状态。
输入格式
第一行包含一个整数 $n$ ($1 \le n \le 100$),表示时钟连续显示的分钟数。接下来的 $8n - 1$ 行包含 $n$ 个大小为 $7 \times 21$ 的时钟显示 ASCII 图像,每两个表示之间由一个空行分隔。
所有数字段由两个字符表示,每个冒号段由一个字符表示。字符 ‘X’ 表示该段处于开启状态。字符 ‘.’ 表示其他任何情况(关闭的段或显示屏中非段的部分)。详情请参阅样例输入/输出;第一个输出显示了所有可能的 LCD 段以及用于表示 ‘:’ 的较小段。没有任何时钟表示会在非段位置出现 ‘X’,也不会出现仅显示一半段的情况。
输出格式
显示一个 $7 \times 21$ 的 ASCII 图像,其中 ‘0’ 表示烧毁的段,‘1’ 表示烧入的段,‘W’ 表示肯定正常工作的段,‘?’ 表示状态无法确定的段。使用 ‘.’ 表示非段区域。如果给定的显示状态不可能是连续分钟产生的,则输出 impossible。
样例
样例输入 1
3 ......XX.....XX...XX. .....X..X...X..X....X .....X..X.X.X..X....X .............XX...XX. .....X..X......X.X..X .....X..X......X.X..X ......XX.....XX...XX. ......XX.....XX...XX. .....X..X...X..X....X .....X..X.X.X..X....X .............XX...XX. .....X..X......X.X..X .....X..X......X.X..X ......XX.....XX...XX. .............XX...XX. ........X...X..X....X ........X.X.X..X....X .............XX...... ........X...X..X.X..X ........X...X..X.X..X ......XX.....XX...XX.
样例输出 1
.??...WW.....??...??. ?..?.W..?...?..1.0..? ?..?.W..?.?.?..1.0..? .??...??.....11...WW. ?..?.W..?.0.W..?.1..? ?..?.W..?...W..?.1..? .??...11.....??...??.
样例输入 2
2 ......XX.....XX...XX. ...X....X...X..X.X..X ...X....X.X.X..X.X..X ......XX..........XX. ...X.X....X.X..X.X..X ...X.X......X..X.X..X ......XX.....XX...XX. ......XX.....XX...... ...X....X...X..X..... ...X....X.X.X..X..... ......XX............. ...X.X....X.X..X..... ...X.X......X..X..... ......XX.....XX......
样例输出 2
impossible