Циклічний рядок?#11277

Циклічний рядок?

1 секунда
128 мегабайтів
Складна

Великий чарівник дав Алісі та Бобу циклічний рядок довжини 2 \cdot n, в якому немає повторюваних підрядків довжини . У цьому циклічному рядку символ s_{i+1} слідує за s_i, а s_1 слідує за s_{2n}.

На жаль, злий джин перемішав усі символи рядка. Допоможіть Алісі та Бобу відновити початковий рядок так, щоб виконувалася вищезазначена умова.

Вхідні дані

Містить один рядок довжини 2 \cdot n (2 \leq 2 \cdot n \leq 10^6), що складається тільки з малих латинських літер.

Вихідні дані

Виведіть "NO" у першому рядку, якщо неможливо відновити рядок так, щоб виконувалася умова. В іншому випадку у першому рядку виведіть "YES".

У другому рядку виведіть відновлений рядок. Якщо існує декілька можливих варіантів, виведіть будь-який з них.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Приклад 3

Loading
Loading

Примітка

У першому прикладі підрядками відновленого рядка є: "abbab", "bbabc", "babcb", "abcbc", "bcbcc", "cbccb", "bccba", "ccbab", "cbabb", "babba".

Зверніть увагу, що перший приклад не містить повторень, однак його можна переписати як ще один цикл без повторів. Таким чином, рішення не єдине - даний приклад також є правильним рішенням.

У другому прикладі неможливо відновити рядок так, щоб не було повторень.

У третьому прикладі нічого змінювати не потрібно.