Задачи
Корабли
Корабли
Наверное каждый, кто когда-либо учился в школе :) , знает, что есть игра, в которой двое игроков размещают какое-то множество кораблей листе бумаги в клеточку и попытаться уничтожить корабли друг друга, угадав их расположения.
В нашей версии игры разрешено использовать вам и вашему оппоненту следующие семь моделей кораблей, расставляя их на прямоугольную сетку в соответствующих квадратах
\includegraphics{https://static.e-olymp.com/content/ca/ca5fc07f886854db706566606a4db4986b2014a3.jpg}
Каждый корабль на картинке занимает ровно четыре квадрата. Корабли можно поворачивать, но нельзя отзеркаливать. Гарантируется, что все корабли будут полностью размещены в пределах заданного прямоугольника, не перекрывать друг друга, и в то же время, касание другого корабля или его границы допускается.
Можете считать, что мы находимся в середине игры и несколько квадратов уже раскрыты. Вам будет предоставлено прямоугольную сетку с информацией о квадратах, представляющей текущее положение в игре позиций судов противника. Каждый квадратик отмечен одним из следующих символов:
\begin{itemize}
\item '\textbf{x}' если в указанной клетке находится часть корабля
\item '\textbf{o}' если ни один корабль не находится в указанной клетке
\item '\textbf{.}' если эта клетка до сих пор не раскрыта
\end{itemize}
Имея эту информацию, вы должны решить, можно ли определить размещение всех остальных частей кораблей ("\textbf{х}"), совершив при этом не более чем один промаха, то есть, можете ли вы раскрыть все клетки с символом "\textbf{.}", не получив при этом более одного ответа о промахе ("\textbf{о}"), для того, чтобы раскрыть все клетки, которые будут обозначаться символом "\textbf{х}". По сути это означает, что вы имеете право совершить один промах ("\textbf{о}"), если после этого решение становится уникальным.
\InputFile
Входной файл содержит несколько игровых ситуаций. Каждый тест начинается со строки, содержащей два целых числа \textbf{w} и \textbf{h}. Они определяют ширину и высоту прямоугольника игры, при этом \textbf{2} ≤ \textbf{w}, \textbf{h} ≤ \textbf{16}.
Каждая из последующих \textbf{h} строк содержит строку из \textbf{w} символов. Каждый из этих символов '\textbf{x}', '\textbf{o}' или '\textbf{.}', в зависимости от состояния соответствующей клетки.
Пустая строка отделяет каждую новую игру от предыдущей. Входной файл заканчивается данными с \textbf{w = 0} и \textbf{h = 0}. Эта игру обрабатывать не нужно.
\OutputFile
Для каждого теста необходимо сначала вывести строку, содержащую номер игры (см. пример выходных данных), а затем строку, содержащая либо '\textbf{yes.}' (если вы можете определить все '\textbf{x}' совершив не более одного промаха), либо '\textbf{no.}' (если вы не можете определить все '\textbf{x}' без совершения, по меньшей мере, двух промахов).
Между разными играми необходимо вывести пустую строку.
Входные данные #1
10 10 ........oo oooooxoooo oxooxxxo.. xxoooooo.. xoooxooo.x ooxxxxoooo oooooxxoox ooooooxoox ooooooooxx oooooooooo 0 0
Выходные данные #1
Game #1 yes.