Зашифрованное сообщение

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

Во время расследования Бенуа Бланк обнаружил подозрительную записку, оставленную кем-то на месте преступления. Текст в записке tt на первый взгляд не имел никакого смысла, но после долгого анализа записки Бланк пришел к выводу, что сообщение осмысленно, но зашифровано.

Шифр, использованный в записке, довольно нестандартный. Каждое слово было зашифровано отдельно, после чего все слова были склеены вместе, чтобы не было понятно, где какое слово начинается и заканчивается. Поэтому первым делом детектив решил восстановить, где находятся границы слов, а после уже взяться за их расшифровку.

Известно, что текст на записке был получен следующим образом: набор зашифрованных слов w_1,w_2,,w_nw\_1, w\_2, \ldots, w\_n был продублирован в развернутом виде, после чего выписан без пробелов. Иными словами, t=(w_1++w_n)+(w_n++w_1)t = (w\_1 + \ldots + w\_n) + (w\_n + \ldots + w\_1), где знак '+' обозначает конкатенацию.

Помогите Бенуа Бланку восстановить исходный набор зашифрованных слов. Поскольку Бланк считает, что сообщение содержало много слов, из всех способов разбить tt на слова в соответствии с условием выберите тот, в котором количество слов максимально.

입력

Во вводе дана единственная строка tt из маленьких латинских букв --- зашифрованный текст (1t1061 \leqslant |t| \leqslant 10^6).

출력

В первой строке выведите целое число nn --- максимально возможное количество слов в зашифрованном тексте. В следующих nn строках перечислите сами слова по одному на каждой строке.

Если ответов с максимальным nn несколько, выведите любой из них.

Гарантируется, что ответ существует.