Двомірне доміно
Кожен елемент двомірного доміно являє собою квадрат, сторони якого несуть на собі числа від 0 до 3, записані у двійковій системі числення. Доміно вважається складеним вірно, якщо кожна пара квадратів доміно, що мають спільну сторону, містить на цій стороні одне й те ж число.
Потрібно визначити, чи вірно складено доміно і чи можна додати до нього ще один заданий елемент так, щоб він мав сільну сторону хоча б з одним із заданих квадратів. При додаванні елемент можна довільним чином обертати, але не перевертати.
Вхідні дані
У першому рядку вхідного файлу через пропуск задано розміри прямокутника, шо містить у собі вже складене доміно: 2 ≤ N
, M ≤ 100
. Кожен з наступних N
рядків містить через пропуск опис М позицій у прямокутнику у наступному вигляді:
• пуста позиція позначається ZZ;
• елемент, що займає не пусту позицію, задається шістнадцятковим текстовим представленням одного байту, у якому кожні два біти вказують число на одній зі сторін. Сторони перераховуються за годинниковою стрілкою, починаючи з лівої.
Останній рядок містить опис елемента, який пропонується додати до вже складеного набору. Припускається, що додавання відбувається у межах того ж прямокутника N×M.
Вихідні дані
У вихідному файлі повинно міститись одне з трьох слів:
• ERROR (доміно складено невірно);
• YES (доміно складено вірно, елемент додадти можна);
• NO (доміно складено вірно, еле елемент додати не можна).