牛牛的字符串
题号:NC207507
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

牛牛正在给大家讲字符串定义!这是一位学生的笔记:

  • 对于一个字符串 ,定义 表示字符串 的第 个字符,其中
  • 定义一个字符串 是回文串 当且仅当满足
  • 定义字符串的拼接操作符为 表示将字符串 接到 后面,例如
  • 定义一个字符串 的大小为 的划分是字符串序列 ,满足

现在牛牛留下了一份课后作业:给你一个仅有小写字母组成的字符串 ,你能否找出一个最大的划分 ,满足 都不是回文串吗?但是牛牛觉得这个题目太简单了 就随手加强了一下:要求给出任意一种可行的方案。

显然出题人不可能会这个题 于是把这个问题丢给了你。

划分最大是指划分的段数最大。

输入描述:

一行一个字符串,表示 

输出描述:

第一行一个整数   表示最大的划分。

接下来 行,每行一个字符串 表示划分的方案。

特别的,如果不能找到任意一组合法的划分 只需要输出 
示例1

输入

复制
abbaca

输出

复制
3
ab
ba
ca
示例2

输入

复制
abbab

输出

复制
2
abb
ab
示例3

输入

复制
ababa

输出

复制
-1

备注: