C. JM的荧光棒工厂

内存限制:512 MiB 时间限制:2000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

黑心商人JM雇佣了10000个wzk来生产魔法荧光棒,这种魔法荧光棒拿在dalao的手上就会闪闪发光。精通字符串理论的wzk在工作的时候突发奇想:如果这些荧光棒可以一根接一根地绑在一起,那该有多好!

被批量生产的荧光棒可以视为一个仅包含小写字母的字符串 ,没错这些荧光棒都是一模一样的。两个荧光棒可以被绑在一起,那么他们必须在被绑处有公共的部分,这个部分的长度叫作损失长度。

例如对于 abcccab ,他可以以 的损失长度绑在一起,就像这样:

abcccab
     abcccab

例如对于 aacaa ,他可以以 的损失长度绑在一起,就像这样:

aacaa
   aacaa
or:
aacaa
    aacaa

当然你不能这样绑,因为这毫无意义,绑了跟没绑一样:

aacaa
aacaa

现在wzk随意地制造了一种荧光棒,他想知道有多少种不同的非零的损失长度,使得两根荧光棒可以被绑在一起。损失长度必须小于荧光棒的总长。

输入格式

输入一行一个字符串

输出格式

第一行一个非负整数 ,表示有多少种不同的损失长度。

接下来一行 个正整数,表示每种损失长度,用空格隔开,要求按从小到大的顺序输出。

样例

样例输入1

aacaa

样例输出1

2
1 2

样例输入2

abababa

样例输出2

3
1 3 5

数据范围与提示

Hint

本题I/O量可能较大,请避免使用cin/cout。