#NH4724. NH.2004.中学组.06.堆叠方框

NH.2004.中学组.06.堆叠方框

题目描述

观察下面5个分别放有方框的矩阵。

img

现在将方框 1 放在最下面,将其它方框按顺序堆叠上去,最后令方框 5 在最上面。如果某个方框有一部分和另一个方框重叠,那么后放的会遮盖住先放的。

下面是将方框堆叠放置后的矩阵:

img

这些方框是是按什么顺序从低到高堆放起来的呢?答案是 EDABC 。

你的任务是根据输入的一个堆有方框的矩阵,确定这些方框从低到高的堆放顺序。以下是一些有关规定:

  1. 方框的宽度总是为 1 个字符,且方框的边长不小于 3 个字符。

  2. 对于每个方框,它的每条边总有一部分没被遮住(一个角分别属于两条边的一部分)。

  3. 方框均由大写字母表示。任意两个方框的表示字母都不同。

输入格式

每个输入案例包括以下几个部分:第一行为矩阵的高度 h ( h ≤ 30 ),第二行为宽度 w ( w ≤ 30 ),接着输入 h 行长度为 w 的字符串,表示堆有方框的矩阵。

输入文件可能含有若干个上述案例。案例之间没有空行。所有案例必须依次处理。

输出格式

根据从低到高的叠放顺序依次输出方框的字母。如果有多种放置顺序,按照字典序输出它们,每个一行。每个输入案例一定有答案。按照案例输入的顺序输出相应的答案,不要输出空行(即使是两个案例之间)。

样例

9
8
.CCC....
ECBCBB..
DCBCDB..
DCCC.B..
D.B.ABAA
D.BBBB.A
DDDDAD.A
E...AAAA
EEEEEE..
EDABC