ל-Little Cyan Fish יש רשת מלבנית עם $n$ שורות ו-$m$ עמודות. הוא רוצה לחלק את הרשת לפנטומינואים (pentominoes). פנטומינו הוא אזור המורכב מחמישה תאים בדיוק המחוברים באמצעות צלעות משותפות.
ישנן שתים עשרה צורות פנטומינו, המסומנות ב-F, I, L, P, N, T, U, V, W, X, Y ו-Z, כפי שמוצג להלן. ניתן לסובב או לשקף צורה.
Little Cyan Fish רוצה שכל תא ישתייך לפנטומינו אחד בדיוק. בנוסף, אסור ששני פנטומינואים מאותה צורה יחלקו צלע משותפת, גם אם יש להם כיוונים שונים. שיתוף של פינה בלבד מותר.
מצאו חלוקה המקיימת חוקים אלה. אם הדבר אינו אפשרי, דווחו על כך.
קלט
ישנם מספר מקרי בדיקה. השורה הראשונה של הקלט מכילה מספר שלם יחיד $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 אינן תלויות רישיות (case-insensitive). אם קיימות מספר חלוקות חוקיות, הדפיסו אחת מהן כלשהי.
דוגמאות
קלט 1
4 1 5 1 10 3 5 2 10
פלט 1
Yes IIIII No Yes LLLLT LYTTT YYYYT Yes LLLLNNNPPP LIIIIINNPP