Problems
Изоморфизмы
Изоморфизмы
Две строки \textbf{s} и \textbf{t} называются изоморфными, если можно так переобозначить все буквы первой строки, чтобы получить вторую. Конечно, разные буквы должны быть переобозначены разными буквами, а одинаковые - одинаковыми.
Например, строки "\textbf{aba}" и "\textbf{сас}" изоморфные. Соответствующее переобозначение: обозначим букву '\textbf{a}' буквой '\textbf{c}', а букву '\textbf{b}' буквой '\textbf{a}'. А строки "\textbf{xy}" и "\textbf{xx}" не изоморфные.
Вам задана строка \textbf{s}. Введем функцию \textbf{f(t)} (\textbf{t} - непустая строка), которая равна количеству подстрок строки \textbf{s}, изоморфных \textbf{t}, умножить на длину строки \textbf{t}. Ваша задача, найти строку \textbf{t}, состоящую из маленьких латинских букв, такую, что значение \textbf{f(t)} максимально возможное.
\InputFile
В первой строке записана строка \textbf{s} (\textbf{1} ≤ \textbf{|s|} ≤ \textbf{2000}), строка состоит из маленьких латинских букв.
\OutputFile
Выведите оптимальную строку \textbf{t}, если таких несколько, выведите любую. Выведенная строка должна состоять из маленьких латинских букв.
Input example #1
abacabadabacaba
Output example #1
acaba