1516 - KMP

给出两个字符串s1 和 s2,若s1的区间[l,r]子串与s2完全相同,则称s2在s1中出现了,其出现位置为l。现在请你求出s2在s1中所有出现的位置。

定义一个字符串s的border为s的一个非s本身的子串t,满足t既是s的前缀,又是s的后缀。

对于s2,你还需要求出对于每个前缀s'的最长border t'的长度。

输入

第一行为一个字符串,即为s1.

第二行为一个字符串,即为s2.

输出

首先输出若干行,每一行一个整数,按从小到大的顺序输出s2在s1中出现的位置。

最后一行输出|s2|个整数,第i个整数表示s2的长度为i的前缀的最长border长度。

样例

输入

ABABABC
ABA

输出

1
3
0 0 1

输入

AABAABAABAAF
AABAAF

输出

7
0 1 0 1 2 0
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题