Задачи
Автоматический Сборщик
Автоматический Сборщик
Одно высоконаучное химическое учреждение активно экспериментирует с Автоматическим Сборщиком Молекул. Молекулы, между которыми возможно образование химических связей, перемешивают и помещают в АСМ, где они образуют сложные молекулярные структуры. Однако иногда возникает проблема --- молекулы образуют такую большую группу, что Сборщик заедает.
Напишите программу, которая будет определять, может ли предоставленный набор молекул собираться в структуры неограниченного размера. При этом 1) задача ограничена плоскими структурами и 2) каждая молекула имеет вид квадрата, все молекулы имеют одинаковый размер. Четыре стороны квадрата обозначают поверхности, которыми молекулы могут соединяться с совместимыми молекулами.
В каждом тесте вам будет представлен набор описаний молекул. Каждый тип молекулы описывается четырьмя парами символов --- метками связей, которые обозначают возможность соответствующей поверхности молекулы соединяться с другими молекулами.
Существует два вида меток связей:
\begin{itemize}
\item Заглавная латинская буква (\textbf{A..Z}) и один из символов \textbf{+} или \textbf{-}. Две поверхности могут соединяться, если их метки связей обозначены одинаковыми буквами, но различными знаками. Например, \textbf{A+} совместима с \textbf{A-}, но не совместима с A+ и \textbf{B-}.
\item Два нуля \textbf{00}. Метка связи \textbf{00} означает, что эта поверхность не может образовывать связь (даже с такой же поверхностью с меткой \textbf{00}).
\end{itemize}
Предположим, что в Сборщике имеется неограниченное количество молекул каждого из описанных видов, которые можно поворачивать и переворачивать. При образовании молекулярных структур молекулы могут находиться рядом только, если они совместимы. Каждая поверхность молекулы при этом может быть соединена с ничем.
Рисунок показывает пример молекул трех видов и структуры ограниченного размера, собранной из них (это не единственная возможная структура для заданных типов молекул).
\includegraphics{https://static.e-olymp.com/content/0b/0bd557d3edc18dd7520178f152e0ab8d45982fa6.jpg}
\textit{\textbf{Рисунок 1}}: Иллюстрация примера 1.
\InputFile
Входные данные состоят из одного теста. Каждый тест состоит из двух строк. Первая строка содержит число \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{40000}) --- количества типов молекул. Вторая строка содержит \textbf{n} подстрок по \textbf{8} символов каждая --- описание каждого вида молекул, причем поверхности описываются по часовой стрелке.
\OutputFile
Выведите слово \textbf{unbounded}, если молекулы могут создать бесконечную структуру и слово \textbf{bounded} в противном случае.
Входные данные #1
3 A+00A+A+ 00B+D+A- B-C+00C+
Выходные данные #1
bounded