为了理解早期文明,考古学家经常研究用古代语言书写的文本。埃及在 3000 多年前使用的一种语言,其基础是被称为象形文字的字符。图 C.1 展示了六种象形文字及其名称。在本题中,你需要编写一个程序来识别这六种字符。
图 C.1:六种象形文字
输入格式
输入包含多个测试用例,每个用例描述了一幅包含一个或多个图 C.1 中所示象形文字的图像。图像以一系列水平扫描线的形式给出,由黑像素(用 1 表示)和白像素(用 0 表示)组成。在输入数据中,每一行扫描线都以十六进制表示。例如,八个像素的序列 10011100(一个黑像素,后跟两个白像素,依此类推)在十六进制中表示为 9c。十六进制编码中仅使用数字和字母 a 到 f。每个测试用例的第一行包含两个整数 $H$ 和 $W$。$H$ ($0 < H \le 200$) 是图像中的扫描行数,$W$ ($0 < W \le 50$) 是每行中十六进制字符的数量。接下来的 $H$ 行包含图像的十六进制字符,从上到下排列。输入图像符合以下规则:
- 图像仅包含图 C.1 中所示的象形文字。
- 每幅图像至少包含一个有效的象形文字。
- 图像中的每个黑像素都是有效象形文字的一部分。
- 每个象形文字由一组连通的黑像素组成,且每个黑像素的上方、下方、左侧或右侧至少有另一个黑像素。
- 象形文字之间互不接触,且没有象形文字位于另一个象形文字内部。
- 两个对角接触的黑像素必然会通过一个共同的接触黑像素相连。
- 象形文字可能会变形,但每个象形文字的形状在拓扑上等价于图 C.1 中的符号之一。
最后一个测试用例后跟一行包含两个零的输入。
输出格式
对于每个测试用例,显示其用例编号,后跟一个字符串,其中包含图像中识别出的每个象形文字对应的字符,使用以下代码:
Ankh: A Wedjat: J Djed: D Scarab: S Was: W Akhet: K
在每个输出字符串中,请按字母顺序打印代码。请遵循样例输出的格式。
图 C.2:AKW
图 C.3:AAAAA
样例
样例输入 1
100 25 0000000000000000000000000 0000000000000000000000000 ...(50 lines omitted)... 00001fe0000000000007c0000 00003fe0000000000007c0000 ...(44 lines omitted)... 0000000000000000000000000 0000000000000000000000000 150 38 00000000000000000000000000000000000000 00000000000000000000000000000000000000 ...(75 lines omitted)... 0000000003fffffffffffffffff00000000000 0000000003fffffffffffffffff00000000000 ...(69 lines omitted)... 00000000000000000000000000000000000000 00000000000000000000000000000000000000 0 0
样例输出 1
Case 1: AKW Case 2: AAAAA
说明
两个图形在拓扑上等价,是指如果每个图形都可以通过拉伸而不撕裂的方式变换为另一个图形。