Little Cyan Fish có một lưới hình chữ nhật gồm $n$ hàng và $m$ cột. Cậu muốn chia lưới này thành các pentomino. Một pentomino là một vùng bao gồm đúng năm ô vuông được kết nối với nhau qua các cạnh chung.
Có mười hai hình dạng pentomino, được gán nhãn là F, I, L, P, N, T, U, V, W, X, Y và Z, như hình minh họa dưới đây. Một hình dạng có thể được xoay hoặc lật đối xứng.
Little Cyan Fish muốn mỗi ô đều thuộc về đúng một pentomino. Ngoài ra, không có hai pentomino nào có cùng hình dạng được phép chung cạnh, ngay cả khi chúng có hướng khác nhau. Việc chỉ chung một góc (đỉnh) là được phép.
Hãy tìm một cách chia thỏa mãn các quy tắc này. Nếu không thể thực hiện được, hãy thông báo điều đó.
Dữ liệu vào
Có nhiều bộ dữ liệu. Dòng đầu tiên của dữ liệu vào chứa một số nguyên duy nhất $T$ ($1 \le T$), cho biết số lượng bộ dữ liệu.
Đối với mỗi bộ dữ liệu, dòng đầu tiên chứa hai số nguyên $n$ và $m$ ($1 \le n, m \le 1000$), lần lượt cho biết số hàng và số cột. Dữ liệu đảm bảo rằng $n \times m$ là bội số của $5$.
Dữ liệu đảm bảo rằng tổng của $n \times m$ trên tất cả các bộ dữ liệu không vượt quá $10^6$.
Dữ liệu ra
Đối với mỗi bộ dữ liệu, nếu không tồn tại cách chia hợp lệ, hãy in ra một dòng duy nhất chứa No. Ngược lại, hãy in ra một dòng duy nhất chứa Yes, theo sau là $n$ dòng, mỗi dòng chứa một xâu có độ dài $m$ chỉ bao gồm mười hai chữ cái in hoa FILPNTUVWXYZ.
Chữ cái ở hàng $i$ và cột $j$ phải là nhãn của pentomino chứa ô đó. Mọi vùng liên thông cực đại gồm các chữ cái giống nhau được kết nối qua các cạnh chung phải bao gồm đúng năm ô và có hình dạng được biểu thị bởi chữ cái của nó.
Các từ Yes và No không phân biệt chữ hoa chữ thường. Nếu có nhiều cách chia hợp lệ, hãy in ra bất kỳ cách nào trong số đó.
Ví dụ
Dữ liệu vào 1
4 1 5 1 10 3 5 2 10
Dữ liệu ra 1
Yes IIIII No Yes LLLLT LYTTT YYYYT Yes LLLLNNNPPP LIIIIINNPP