Кораблі
Напевне, кожен, хто колись вчився у школі :) , знає, що є гра, у якій двоє гравців розміщують якусть множину кораблів на аркуші паперу в клітинку і намагаються знищити кораблі один одного, відгадавши їх розміщення.
У нашій версії гри дозволено викпристовувати вам і вашому опоненту наступні сім моделей кораблів, розміщуючи їх на прямокутній сіткці у відповідних квадратах
Кажен корабель на картинці займає рівно чотири квадрати. Кораблі можна повертати, але не можна віддзеркалювати. Гарантується, що усі кораблі буде повністю розміщено у межах заданого прямокутника, вони не перекривають один одного, а також дотикання іншого корабля чи його границі допускається.
Можете вважати, що ми знаходимось в середині гри і декілька квадратів вже розкрито. Вам будет запропоновано прямокутну сітку з інформацією про квадрати, яка задає поточне положення у грі позицій кораблів супротивника. Кожен квадратик відмічено одним з наступних символів:
'x' якщо у вказаній клітинці знаходиться частина корабля
'o' якщо жоден корабель не знаходиться у вказаній клітинці
'.' якщо цю клітинку на даний момент не розкрито
Маючи цю інформацію, ви повинні сказати, чи можна визначити розміщення усіх інших частин кораблів ('х'), здійснивши при цьому не більше одного промаху, тобто, чи можете ви розкрити усі клітинки з символом '.', не оримавши при цьому більше однієї відповіді про промах ('о'), для того, щоб розкрити усі клітинки, які будуть позначені символом 'х'. По суті це означає, що ви маєте право здійснити лише один промах ("о"), якщо після цього розв'язок стає унікальним.
Вхідні дані
Вхідний файл містить декілька ігрових ситуацій. Кожен тест починається з рядка, який містить два цілих числа w та h. Вони визначають ширину та висоту прямокутника гри, при цьому 2 ≤ w, h ≤ 16.
Кожен з наступних h рядків містить рядок з w символів. Кожен з цих символів 'x', 'o' або '.', у залежності від стану відповідної клітинки.
Пустий рядок відокремлює кожну нову гру від попередньої. Вхідний файл завершується даними з w = 0 та h = 0. Цю гру опрацьовувати не потрібно.
Вихідні дані
Для кожного тесту необхідно спочатку вивести рядок, який містить номер гри (див. приклад вихідних даних), а далі рядок, який містить або 'yes.' (якщо ви можете іизначити усі 'x' здійснивши не більше одного промаху), або 'no.' (якщо ви не можете визначити усі 'x' без здійснення, по меншій мірі, двох промахів).
Між різними іграми необхідно вивести пустий рядок.