P2749 [IOI 1998 / USACO5.1] 夜空繁星 Starry Night
题目背景
高高的星空,簇簇闪耀的群星形态万千。一个星座 **(cluster)** 是一群连通的星组成的非空连通星系,这里的连通是指水平,垂直或者对角相邻的两个星星。一个星座不能是另一个更大星座的一部分,星座可以相似 **(similar)**。如果两个星座有相同的形状,而且包括相同数目的星体,那么不管其方向性如何,就算相似。一般而言,星座可能的方向有八个,如图 $1$ 所示。

题目描述
夜空可以表示为一份天体图 **(sky map)**,它是一个由字符 `0` 和 `1` 组成的二维矩阵,字符 `1` 表示所在的位置有一颗星;字符 `0` 表示该位置上是空的。
给定一份天体图,用同一个小写英文标识 **(mark)** 相似的所有星座。
相似的星座必须用相同的字母标识,不同的星座表示为不同的字母。标识一个星座,就是将其中各星体对应的字符 `1` 替换为相应的小写字母。
输入格式
文件的前两行分别记录了天体图的宽度 $W$、深度 $H$。而天体图则是由接下来的 $H$ 行表示,每行包括 $W$ 个字符。
输出格式
输出标记了星座后的天体图(与输入文件相似,不同之处在于,标识 **(mark)** 了各个星座)。
对于同一个输入文件,可能会有很多不同的标识,此时,输出字典序最小的标识。
说明/提示
### 样例解释
此时的天体图是一个长 $23$ 宽 $15$ 的二维矩阵。
输入对应 **(corresponds to)** 下面这个矩阵的图像。

输出对应 **(corresponds to)** 下面的天空景象。

### 数据范围
- $0\le$ 星空的长和宽 $\le100$;
- $0\le$ 星座个数 $\le500$;
- $0\le$ 不相似的星座个数 $\le26$;
- $1\le$ 每个星座中星星个数 $\le160$。