Прості рядки#5248

Прості рядки

2 секунди
64 мегабайти
Середня

Рядок називається простим, якщо він лексикографічно менший за будь-який зі своїх суфіксів. Крім того, рядок з одного символу також є простим. Наприклад, рядки , , та є простими, а рядки , , та — ні.

Відомо, що будь-який рядок розкладається у конкатенацію лексикографічно незростаючої послідовності простих рядків єдиним чином. Потрібно написати програму, яка знаходила б цей розклад.

Вхідні дані

Вхідний файл складається з єдиного рядка , який необхідно розкласти у конкатенацію простих рядків. Рядок складається не більше ніж з маленьких латинських букв і є непорожнім.

Вихідні дані

Виведіть шуканий розклад, по одному елементу в рядку.

Приклади

Приклад 1

Loading
Loading