牛牛与回文串
题号:NC21650
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
Special Judge, 64bit IO Format: %lld

题目描述

牛牛非常喜欢回文串,他认为回文会给自己带来好运,有一天他看到一个字符串突发奇想,如果将这个字符串所有字符打乱,然后每次操作只能挑选若干个能构成回文串的字符组合成一个字符串,牛牛最少需要操作几次才能取完所有字符。

输入描述:

输入一个字符串S,1 ≤ |s| ≤ 1000

输出描述:

第一行输出一个整数K,表示回文串的个数

接下来K行每行输出一个回文串,要求输出的所有字符串的字符集合恰好是输入的S中的所有字符集合
示例1

输入

复制
abbaa

输出

复制
1
ababa
示例2

输入

复制
abc

输出

复制
3
a
b
c
示例3

输入

复制
aaabbbccc

输出

复制
3
aba
bcb
cac
示例4

输入

复制
z

输出

复制
1
z

备注:

子任务一30分:|s|<=10

子任务二30分:|s|<=100

子任务三40分:|s|<=1000