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.

示例1

输入

ABACABA
AAA

输出

3
1 4
3 2
7 1
3
1 3
2 2
3 1