Жюри N-ской олимпиады по информатике решило зашифровать свои материалы
подстановочным шифром. Для шифрования таким шифром задаётся взаимно-однозначное
соответствие между буквами алфавита в открытом (т.е. до шифрования) тексте и буквами
алфавита в закрытом (т.е. после шифрования) тексте,
это соответствие и является ключом шифра. В процессе шифрования
каждая буква в открытом тексте заменяется на соответствующую ей букву
в закрытом тексте, порядок букв в слове при этом не меняется.
Однако, память у членов жюри оказалась уже не та, что в молодые годы, поэтому
часто они путали, какие буквы надо было заменять на какие.
В результате теперь они не могут восстановить свои материалы, а олимпиада уже на носу!
Чтобы разрешить свои проблемы, они обратились к вам. Для облегчения вашей
задачи они выписали на бумажку все возможные варианты зашифрования букв,
которые они могли применять, в виде набора пар «открытая буква» — «зашифрованная буква».
Также вам известны все пары букв N-ского
алфавита, которые могут следовать одна за другой в открытом тексте. Ваша задача состоит в том, чтобы по заданному
зашифрованному слову сказать, соответствует ли ему хоть одно расшифрованное слово,
единственен ли вариант расшифровки, и привести пример вариантов расшифровки слова.
Слово \(\mathcal{A}\) считается возможной расшифровкой слова \(\mathcal{B}\),
если, во-первых, его можно «зашифровать» (заменяя каждую букву на одну из соответствующих ей
«зашифрованных» букв),
получив слово \(\mathcal{B}\), и, во-вторых, каждая пара букв слова \(\mathcal{A}\), стоящих рядом, является
допустимой для N-ского языка.
Выходные данные
Если вариантов дешифрования нет ни одного, в первую строку выходного файла
выведите “no
”.
Если вариант дешифрования ровно один, в первую строку выходного файла
выведите “only
”, а во вторую — дешифрованное слово.
Если вариантов дешифрования больше одного, в первую строку выходного файла
выведите “many
”, а во вторую и третью — любые два
различных варианта дешифрования слова.