You have a string s = s 1 s 2...s |s| , where |s| is the length of string s , and s i its i -th character.
Let's introduce several definitions:
Your task is, for any prefix of string s which matches a suffix of string s , print the number of times it occurs in string s as a substring.
The single line contains a sequence of characters s1s2...s|s|(1 ≤ |s| ≤ 105) — string s. The string only consists of uppercase English letters.
In the first line, print integer k(0 ≤ k ≤ |s|) — the number of prefixes that match a suffix of string s. Next print k lines, in each line print two integers lici. Numbers lici mean that the prefix of the length li matches the suffix of length li and occurs in string s as a substring ci times. Print pairs liciin the order of increasingli.
ABACABA
AAA
3
1 4
3 2
7 1
3
1 3
2 2
3 1