在对一颗遥远星球的探险中,“自由搜索小组”(Group of Free Search)又有了新发现,这显然与“流浪者”(Wanderer)文明有关。那是一个用途不明的装置,其主要控制元件是一个 $M \times N$ 的矩形网格;网格中的一些格子已被移除,另一些格子则被染成了 26 种不同颜色中的一种。在附近发现了一个盒子,里面装有大量 $2 \times 1$ 的矩形板块,令人联想到地球上的多米诺骨牌。这些板块的格子大小与控制面板上的格子大小完全一致。
专门研究“流浪者”意图的著名专家鲁道夫·西科尔斯基(Rudolph Sikorski)推测,可以通过按以下方式在网格上放置板块来激活该机制:
- 任何被移除的格子都不能被覆盖;
- 每种特定颜色的格子中,必须且仅能有一个格子被覆盖;
- 未染色且未被移除的格子必须被完全覆盖。
前“开拓者”(progressor)列奥·阿巴尔金(Leo Abalkin)设法偷走了装有板块的盒子。现在,他必须将板块正确地放置在网格上以激活该机制。请在鲁道夫·西科尔斯基发现失窃之前帮助他完成这项任务。
输入格式
输入的第一行包含两个空格分隔的整数 $M$ 和 $N$ —— 网格的大小($1 \le M, N \le 100$)。
接下来是网格本身的定义:共 $M$ 行,每行包含 $N$ 个字符 —— 表示格子的描述。
被移除的格子用字符 .(ASCII 码 46)表示。26 种颜色之一的格子用大写英文字母 A 到 Z 表示,不同的字母对应不同的颜色,相同的字母对应相同的颜色。其他格子用字符 *(ASCII 码 42)表示。
彩色格子可以以任何组合出现在输入中,但保证相同颜色的格子具有相同的奇偶性。格子的奇偶性是指其坐标之和的奇偶性。
此外,保证至少存在一个未被移除的格子(无论是否染色)。
输出格式
如果无解,输出的第一行应包含单词 No。
否则,第一行应包含单词 Yes。接下来的几行应包含板块的布局:共 $M$ 行,每行包含 $N$ 个字符。
字符 .(ASCII 码 46)表示被移除的格子。
每个板块占用两个格子。因此,每个被覆盖的格子都被板块的一半覆盖:右半部分、左半部分、上半部分或下半部分。
- 板块的上半部分用字符
^(ASCII 码 94)表示。 - 板块的下半部分用字符
v(ASCII 码 118)表示。 - 板块的左半部分用字符
<(ASCII 码 60)表示。 - 板块的右半部分用字符
>(ASCII 码 62)表示。 - 未被覆盖的格子用字符
@(ASCII 码 64)表示。
“上”、“下”、“左”、“右”的概念是指输出文件在屏幕上的呈现方向,而非网格本身的方向。
样例
输入格式 1
4 8 ...***.. ..A.A*.. .B***.*. ******B.
输出格式 1
Yes ...<>^.. ..^.@v.. .@v<>.^. <><><>v.