Ізоморфізми – 2
Два рядки s і t називаються ізоморфними, якщо можна здійснити таке переобозначення всіх символів першого рядка, щоб отримати другий. При цьому різні символи повинні бути замінені на різні символи, а однакові — на однакові.
Наприклад, рядки "aba" і "cac" є ізоморфними. Відповідне переобозначення: символ 'a' замінюється на 'c', а символ 'b' на 'a'. Проте рядки "xy" і "xx" не є ізоморфними.
Вам дано рядок s. Визначимо функцію f(t) (t — непорожній рядок), яка дорівнює кількості підрядків рядка s, ізоморфних t, помноженій на довжину рядка t. Ваше завдання — знайти такий рядок t, що складається з малих латинських букв, для якого значення f(t) є максимально можливим.
Вхідні дані
У першому рядку подано рядок s (1 ≤ |s| ≤ 4000), який складається з малих латинських букв.
Вихідні дані
Виведіть оптимальний рядок t. Якщо таких рядків декілька, виведіть будь-який з них. Виведений рядок повинен складатися з малих латинських букв.