Pentominous 是一种基于十二种五连块(pentominoes)的网格逻辑谜题。五连块是由五个大小相等的正方形边对边连接而成的多边形。
图 G.1:十二种五连块(不考虑镜像和旋转)及其名称。
该谜题的目标是将网格划分为大小为 5 的区域(即五连块),使得没有两个共享边的区域具有相同的形状。允许对五连块进行旋转和镜像,但旋转和翻转后的形状仍视为同一种形状。十二种可能的形状如图 G.1 所示。
在普通的 Pentominous 谜题中,玩家会得到一些预先填充的单元格,其所在区域的形状是预先确定的。在本题中,你面对的是一个 $h \times w$ 的空白网格,你的任务是创建一个任意合法的五连块排列。
输入格式
输入包含: * 一行,包含两个整数 $h$ 和 $w$ ($1 \le h, w \le 100$),表示网格的高度和宽度。
输出格式
如果不存在合法的 $h \times w$ Pentominous 网格,输出 “no”。否则,输出 “yes”,随后输出 $h$ 行,每行包含 $w$ 个字符,表示使用图 G.1 中的字母填充的一种可能的网格。如果存在多种解,输出其中任意一种即可。
样例
样例输入 1
3 5
样例输出 1
yes UUXUU UXXXU UUXUU
样例输入 2
2 10
样例输出 2
yes LLLLNNNPPP LIIIIINNPP
样例输入 3
99 17
样例输出 3
no
样例输入 4
6 10
样例输出 4
yes IPPYYYYVVV IPPXYLLLLV IPXXXFZZLV ITWXFFFZUU ITWWNNFZZU TTTWWNNNUU
样例输入 5
1 5
样例输出 5
yes IIIII