F. 观星

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

题目描述

梅莉和莲子正在观星。莲子发现,若将银河中星星的星等用字母表示,一个星座可以形成一个字符串。

梅莉喜欢重复,因此她取出这个字符串的每个前缀作为子串,统计出了该子串前缀和后缀相同的数量。
莲子不喜欢重复,因此她对于每个子串的答案扣掉了所有前后缀部分有重叠的数量。

她们记下了所有这些前缀的答案加一后的积对 取模的值。可惜秘封俱乐部的活动日志受潮,这个数字不见了踪影。你能帮她们还原出原本的答案吗?

形式化来讲,

求对于字符串 的前 个字符构成的子串,既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠的数量。将该数量记作 ,输出所有 的乘积,对 取模的结果即可。

输入格式

行仅包含一个正整数 ,表示测试数据的组数。 随后 行,每行描述一组测试数据。每组测试数据仅含有一个字符串 的定义详见题目描述。数据保证 中仅含小写字母。输入文件中不会包含多余的空行,行末不会存在多余的空格。

输出格式

包含 行,每行描述一组测试数据的答案,答案的顺序应与输入数据的顺序保持一致。对于每组测试数据,仅需要输出一个整数,表示这组测试数据的答案对 取模的结果。输出文件中不应包含多余的空行。

样例

输入 #1

3
aaaaa
ab
abcababc

输出 #1

36
1
32 

数据范围与提示

n≤5,L≤1,000,000,L表示字符串的总长度