Little Cyan Fish は $n$ 行 $m$ 列の長方形のグリッドを持っています。彼はこのグリッドをペントミノ(pentomino)に分割したいと考えています。ペントミノとは、辺を共有して連結したちょうど 5 つのマスからなる領域のことです。
ペントミノの形は以下の図に示すように、F, I, L, P, N, T, U, V, W, X, Y, Z とラベル付けされた 12 種類があります。それぞれの形は回転させたり裏返したりしても構いません。
Little Cyan Fish はすべてのマスがちょうど 1 つのペントミノに属するようにしたいと考えています。さらに、同じ形の 2 つのペントミノは、たとえ向きが異なっていても辺を共有してはいけません。頂点(角)のみを共有することは許されます。
これらの規則を満たす分割を 1 つ見つけてください。不可能な場合はその旨を報告してください。
入力
複数のテストケースが与えられます。入力の 1 行目には、テストケースの個数を表す 1 つの整数 $T$($1 \le T$)が与えられます。
各テストケースについて、1 行目にはそれぞれ行数と列数を表す 2 つの整数 $n$ と $m$($1 \le n, m \le 1000$)が与えられます。$n \times m$ は $5$ の倍数であることが保証されています。
すべてのテストケースにおける $n \times m$ の総和は $10^6$ を超えないことが保証されています。
出力
各テストケースについて、条件を満たす分割が存在しない場合は、No を含む 1 行を出力してください。存在する場合は、Yes を含む 1 行を出力し、続いて $n$ 行を出力してください。各行には 12 種類の英大文字 FILPNTUVWXYZ のみからなる長さ $m$ の文字列を出力してください。
$i$ 行目 $j$ 列目の文字は、そのマスを含むペントミノのラベルでなければなりません。同じ文字からなり辺を共有して連結した各極大領域は、ちょうど 5 つのマスからなり、その文字が表す形をしていなければなりません。
Yes および No の大文字・小文字は区別されません。条件を満たす分割が複数存在する場合は、どれを出力しても構いません。
入出力例
入力 1
4 1 5 1 10 3 5 2 10
出力 1
Yes IIIII No Yes LLLLT LYTTT YYYYT Yes LLLLNNNPPP LIIIIINNPP