NSUBSTR - Substrings

You are given a string S which consists of 250000 lowercase latin letters at most. We define F(x) as the maximal number of times that some string with length x appears in S. For example for string 'ababa' F(3) will be 2 because there is a string 'aba' that occurs twice. Your task is to output F(i) for every i so that 1<=i<=|S|.

Input

String S consists of at most 250000 lowercase latin letters.

Output

Output |S| lines. On the i-th line output F(i).

Example

Input:
ababa

Output:
3
2
2
1
1

Added by:Sergey Kulik
Date:2011-01-27
Time limit:0.100s-1s
Source limit:44444B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All
Resource:Immagination

hide comments
2021-06-26 20:09:27
can be solved with Suffix array + Largest rectangular area in histogram concept

Last edit: 2021-06-26 20:09:53
2020-06-09 13:34:29
can anyone provide some more tricky test case?

Last edit: 2020-06-09 13:42:16
2020-01-31 02:56:13
O(nlogn) is ok
2018-03-07 14:38:01
I am an archaeologist.
2016-07-18 09:49:37
Suffix AutoMaton is needed
2015-11-23 12:13:56
my topsort+dp passed
2015-05-28 09:12:01 lu
I got AC only if my program is O(n)
2011-08-22 15:06:20 Siarhei Kulik
O(N) was expected.
2011-08-22 15:06:20 蓝细菌
too strict time limit,my nlogn algorithm can't pass.
2011-08-22 15:06:20 [retired]grayluck
the time limit is too strict....My O(nlogn) got TLE..
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.