Тріоміно#3035

Тріоміно

1 секунда
64 мегабайти
Легка

Тріоміно — це зв'язна фігура, що складається з трьох квадратів. Існують лише два різних типи таких фігур, як показано на малюнку. Усі інші тріоміно — це просто обертання цих двох.

Прямокутне поле з рядками і стовпцями вважається заповненим тріоміно, якщо:

  1. Кожне тріоміно повністю розташоване в межах поля та покриває рівно три клітинки.

  2. Тріоміно не перетинаються між собою.

  3. Не більше двох клітин залишаються порожніми (не покриті тріоміно).

Поле, заповнене тріоміно, можна уявити у вигляді прямокутної таблиці. Значення позначає порожню (незаповнену) клітинку. Однакові натуральні числа вказують, що клітинки належать до одного й того ж тріоміно, а різні значення — до різних тріоміно.

Напишіть програму, яка, проаналізувавши вміст декількох числових двовимірних таблиць, визначає для кожної з них, чи є вона правильно заповненим прямокутним полем тріоміно.

Вхідні дані

У першому рядку міститься кількість прямокутних таблиць (2 \le t \le 10). Далі йдуть блоків такої структури. У першому рядку кожного блоку записано два цілі числа і (1 \le m \le 200, 1 \le n \le 200) — кількість рядків та стовпців відповідної таблиці. Потім йдуть рядків по цілих чисел у кожному. Значення цих чисел лежать у межах від до \left\lfloor \frac{mn}{3} \right\rfloor включно. Обсяг вхідних даних не перевищує Кб.

Вихідні дані

Виведіть рядків, у кожному з яких повинно міститися слово YES або NO (великими латинськими літерами), що вказує, чи є відповідна таблиця коректно заповненим прямокутним полем тріоміно.

Примітка: зображення для першого блоку:

Приклади

Приклад 1

Loading
Loading