#L6387. 「THUPC 2018」绿绿与串串 / String

「THUPC 2018」绿绿与串串 / String

题目描述

绿绿和 Yazid 是好朋友。他们在一起做串串游戏。

我们定义翻转的操作:把一个串以最后一个字符作对称轴进行翻转复制。形式化地描述就是,如果他翻转的串为 RR,那么他会将前 R1|R|-1 个字符倒序排列后,插入到串的最后。

举例而言,串 abcd 进行翻转操作后,将得到 abcdcba;串 qw 连续进行 22 次翻转操作后,将得到 qwqwq;串 z 无论进行多少次翻转操作,都不会被改变。

贪玩的绿绿进行了若干次(可能为 00 次)翻转操作。

淘气的绿绿又展示出了一个非空串 SS,并表示 SS 是最终的串 RR 的前缀。现在,他想考考 Yazid,初始的串 RR 的长度可能是多少。

Yazid 找到了正在参加清华校赛的你,请你来帮他解决这个问题。但聪明的 Yazid 发现,所有超过 S|S| 的整数都一定是 RR 的可能长度,因此你只需要告诉他不超过 S|S|RR 的可能长度即可。

为了帮助你理解问题,Yazid 还将对一些概念和记号做出解释:

对于一个串 SSS|S| 表示的是该串的长度。

对于一个串 SS,我们定义串 TT 是它的前缀,当且仅当 TS|T| \leq |S|,且对于任意整数 ii 满足 1iT1 \leq i \leq |T|,都有 TT 的左起第 ii 个字符与 SS 的左起第 ii 个字符相同。(形象地理解,即 TTSS 的前部出现)

如:abcabcdefg 的前缀,aba 不为 abba 的前缀,zz 的前缀,空串为任意一个串的前缀。


输入格式

输入包含多组数据,第一行一个整数 TT 表示数据组数。接下来依次描述每组数据,对于每组数据:

一行一个仅由小写字母组成的非空字符串 SS


输出格式

对于每组数据,输出 11 行:

从小到大输出 R|R| 的所有不超过 S|S| 的可能值,所有值之间用单个空格隔开。


样例

输入

4
abcdcb
qwqwq
qaqaqqq
carnation

输出

4 6
2 3 4 5
6 7
9

数据范围与提示

保证 S106|S| \leq 10^6S5×106\sum |S| \leq 5 \times 10^6

S\sum |S| 表示的是单个测试点中所有数据 S|S| 的总和。