Problems
Ленточка 3
Ленточка 3
Расположенную вертикально прямоугольную бумажную ленточку с закреплённым нижним концом стали складывать следующим образом:
\begin{itemize}
\item на первом шаге её согнули пополам так, что верхняя половина легла на нижнюю либо спереди (\textbf{P}-сгибание) либо сзади (\textbf{Z}-сгибание);
\item на последующих \textbf{n-1} шагах выполнили аналогичное действие с получившейся на предыдущем шаге согутой ленточкой, как с единым целым.
\end{itemize}
Затем ленточку развернули, приведя её в исходное состояние. На ней остались сгибы - рёбра от перегибов, причём некоторые из рёбер оказались направленными выпуклостью к нам (\textbf{K}-рёбра), а некоторые - от нас (\textbf{O}-рёбра). Рёбра пронумеровали сверху вниз числами от \textbf{1} до \textbf{2^n-1}.
\textbf{Требуется} написать программу, которая по заданным строке символов из прописных букв "\textbf{O}" и "\textbf{K}", где положение на \textbf{i}-ом месте символа "\textbf{O}" или "\textbf{K}" определяет тип ребра на расправленной полоске, находит подстроку из прописных "\textbf{P}" и "\textbf{Z}", определяющих последовательность типов сгибаний, посредством которых получена ленточка с этой последовательностью рёбер.
\InputFile
В первой строке входного файла записано число \textbf{n} - количество сгибаний (\textbf{n} не более \textbf{20}), во второй строке - строка из \textbf{2^n-1} символов "\textbf{O}" или "\textbf{K}", определяющих типы рёбер на расправленной ленточке.
\OutputFile
В единственную строку выходного файла нужно вывести строку из \textbf{n} символов "\textbf{P}" и "\textbf{Z}", задающих последовательность сгибаний. Если такой последовательности сгибаний не существует, то вывести в файл \textbf{NO}.
Input example #1
2 OOK
Output example #1
PZ