Стрічка 3
Розміщену вертикально прямокутну паперову стрічку з закріпленим нижнім кінцем стали складати наступним чином:
на першому кроці її зігнули пополам так, що верхня половина лягла на нижню або попереду (P-згиб) або позаду (Z-згиб);
на натупних n-1 кроках виконали аналогічні дії з отриманою на попередньому кроці зігнутою стрічкою, як з єдиним цілим.
Потім стрічку розгорнули, привівши її до початкового стану. На ній залишились згиби - ребра від перегинань, причому деякі з ребер виявились направленими опуклістю до нас (K-ребра), а деякі - від нас (O-ребра). Ребра пронумерували зверху донизу числами від 1 до 2^n-1.
Потрібно написати програму, яка за заданими рядком символів з прописних літер "O" та "K", де положенння на i-ому місці символа "O" або "K" визначає тип ребра на розправленій стрічці, знаходить підрядок з прописних "P" та "Z", які визначають послідовність типів згибань, при допомозі яких отримано стрічку з цією послідовністю ребер.
Вхідні дані
У першому рядку вхідного файлу записано число n - кількість згибань (n не більше 20), у другому рядку - рядок з 2^n-1 символів "O" або "K", які визначають типи ребер на росправленій стрічці.
Вихідні дані
У єдиний рядок вихідного файлу потрібно вивести рядок з n символів "P" та "Z", які задають послідовність згибань. Якщо такої послідовності згибань не існує, то вивести у файл NO.