На уроке информатики учитель рассказал Васе про новый вид строк — максимально-символьные строки. Строка называется максимально-символьной, если символ, который встречается в ней максимальное количество раз, единственен. Например, строка "abacaba" — максимально-символьная, потому что единственный символ, который встречается максимальное количество раз в ней — 'a'. В то же время строка "cabacbac" — не максимально-символьная, потому что символы 'a' и 'c' встречаются в ней максимальное количество раз, то есть не являются единственными.
После урока Вася сразу начал думать над следующей задачей: из данного набора символов составить как можно меньше максимально-символьных строк, используя все символы из набора ровно по одному разу в любом порядке. Вася не смог придумать решение этой задачи, поэтому обратился за помощью к вам. Помогите ему!
Входные данные
В единственной строке записана строка s, характеризующая набор символов. Ее длина не превосходит 100.
Выходные данные
В первой строке требуется вывести минимальное количество максимально-символьных строк k, которое можно составить из данного набора, использовав каждый символ ровно один раз.
В следующих k строках выходного файла требуется вывести максимально-символьные строки составленные из данного набора.
Если существует несколько правильных ответов, разрешается вывести любой из них.
Пример входных и выходных данных
Ввод |
Вывод |
abacaba |
1
abacaba |
abcabc |
2
aab
ccb |
abc |
3
a
b
c |
cabacbac |
2
bcb
acaca |