6. Восстановить алфавит

Не решаласьСложная

Исследователи космоса в далеком 2089 году нашли и расшифровали фрагмент ДНК неизвестного существа. Получилась последовательность ss, содержащая kk нуклеотидов. Ученые обозначили нуклеотиды заглавными буквами английского алфавита. Например, фрагмент может быть представлен строкой "AABZC" или "BDRRDB".

Стажер Франклин предположил, что ДНК неизвестного существа имеет структуру T26T_{26}, определяемую следующим способом:

  • T1T_1 = "a",
  • T2T_2 = "aba",
  • TiT_i = Ti1ciTi1T_{i-1}c_{i}T_{i-1}, где cic_i - ii-й символ английского алфавита.

Чтобы подтвердить гипотезу, Франклину необходимо найти участок в строке T26T_{26}, где мог бы быть расположен найденный фрагмент ДНК ss. Помогите найти позицию pp в T26T_{26} и взаимно однозначное отображение нуклеотидов в строчные буквы английского алфавита, чтобы начиная с позиции pp можно было встретить найденный фрагмент ДНК.

Формат ввода

В первой строке записана непустая строка ss (1s10000001 \le |s| \le 1\,000\,000), состоящая из заглавных букв английского алфавита.

Формат вывода

Если гипотеза Франклина неверна, выведите строку No solution.

Если верна, в первой строке выведите последовательность rr из 26 различных заглавных букв английского алфавита (r[1]r[1] - отображение для "a", r[2]r[2] - отображение для "b" и т.д.), во второй строке выведите значение pp. Если подходящих ответов несколько, то выведите ответ с минимальным значением pp.

Ограничения

Ограничение времени

1 с

Ограничение памяти

256 МБ

Пример 1

Ввод
BAB
Вывод
BALZKUWISPHXCQTNMGJVFRDOEY
1

Пример 2

Ввод
R
Вывод
RNKIVAJGYPOBFXLTDHZEUMCSWQ
1

Пример 3

Ввод
DABAE
Вывод
ABDEFJRKOTNWZIPHULXCYQGSVM
4

Пример 4

Ввод
YTATBTATZ
Вывод
TABYZNQHGKOUXCPIJFLDREVWSM
8

Пример 5

Ввод
ABAB
Вывод
No solution

Теги

Нужно войти, чтобы отправить решение.Войти