Студенту Васечкину чудовищно не повезло на экзамене. Из 42 билетов он не подготовил только последний, и ему достался именно этот билет. Теперь же Васечкин сидел перед преподавателем и не мог ответить ни на один вопрос. Однако преподаватель пребывал в весьма добром расположении духа и решил дать Васечкину последний шанс на тройку. Он спросил его, как называется предмет, который Васечкин сейчас сдаёт. К несчастью, Васечкин не смог вспомнить точную аббревиатуру, припоминая лишь, что в названии фигурировала чья-то безопасность, какие-то программы и аппараты и, кажется, информатика…
К пересдаче Васечкин решил выучить название предмета. Чтобы лучше запомнить эту длинную строку, он решил разбить её на палиндромы и запомнить каждый из них по отдельности. Конечно, количество палиндромов в разбиении должно быть минимально возможным.
Исходные данные
В первой строке записано название предмета, который сдавал Васечкин, — непустая строка, содержащая только маленькие латинские буквы. Длина строки не превосходит 4000 символов.
Результат
В первой строке выведите минимальное количество палиндромов, на которое можно разбить название предмета. Во второй строке через пробел выведите палиндромы из оптимального разбиения. Если возможных ответов несколько, выведите любой.
Примеры
| исходные данные | результат |
|---|
pasoib
| 6
p a s o i b
|
zzzqxx
| 3
zzz q xx
|
wasitacatisaw
| 1
wasitacatisaw
|
Автор задачи: Игорь Чевдарь
Источник задачи: XIII Открытый командный чемпионат УрГУ по программированию