小青鱼有一个 $n$ 行 $m$ 列的矩形网格。他想要将这个网格划分为若干个五格骨牌(pentomino)。一个五格骨牌是由恰好五个通过公共边相连的单元格组成的区域。
五格骨牌共有十二种形状,分别标号为 F、I、L、P、N、T、U、V、W、X、Y 和 Z,如下图所示。每种形状都可以旋转或翻转。
小青鱼希望每个单元格都恰好属于一个五格骨牌。此外,任何两个相同形状的五格骨牌都不能共享公共边,即使它们的朝向不同也不行。仅共享公共顶点(角)是允许的。
请找出一种满足上述规则的划分方案。如果不存在这样的方案,请报告无解。
输入格式
本题包含多组测试数据。输入的第一行包含一个整数 $T$($1 \le T$),表示测试数据的组数。
对于每组测试数据,第一行包含两个整数 $n$ 和 $m$($1 \le n, m \le 1000$),分别表示网格的行数和列数。保证 $n \times m$ 是 $5$ 的倍数。
保证所有测试数据中 $n \times m$ 的总和不超过 $10^6$。
输出格式
对于每组测试数据,如果不存在合法的划分方案,输出一行一个字符串 No。否则,先输出一行一个字符串 Yes,接下来输出 $n$ 行,每行包含一个长度为 $m$ 且仅由十二个大写字母 FILPNTUVWXYZ 组成的字符串。
第 $i$ 行第 $j$ 列的字母必须表示包含该单元格的五格骨牌的标号。每一个由相同字母组成且通过公共边相连的极大连通区域都必须恰好包含五个单元格,并且具有其字母所表示的形状。
字符串 Yes 和 No 对大小写不敏感。如果存在多种合法的划分方案,输出任意一种即可。
样例
输入格式 1
4 1 5 1 10 3 5 2 10
输出格式 1
Yes IIIII No Yes LLLLT LYTTT YYYYT Yes LLLLNNNPPP LIIIIINNPP