我哋定義一種對字串嘅操作,叫做「摺疊」。一次摺疊包括若干次(可以係零次)摺痕操作。每次都喺兩個相鄰字母之間摺起,將字串後半部分(離開頭較遠嗰部分)放喺前半部分(離開頭較近嗰部分)上面,方向相反,並且喺摺痕位置對齊。做完之後,字串會變成一個結構,層數比摺痕操作嘅次數多一層。
摺疊之後,可以將字串睇成幾疊字母。如果同一疊入面所有字母都一樣,我哋就話呢個摺疊有效。
摺疊嘅「對應集合」,係原字串入面緊接喺每條摺痕之前嗰個字母嘅位置集合。例如,喺第2同第3個字母之間摺一次,對應集合就係 $\{2\}$;冇摺過嘅對應集合就係空集。兩個摺疊相同,當且僅當佢哋嘅對應集合相同。
如果可以揀整數 $a$ 同 $b$($0\le b<a$),令 $x\in S\iff 1\le x<n,\ x\equiv b\pmod a$,集合 $S$ 就叫做等差集合,其中 $n$ 係字串長度。例如,當 $n=10$,$\varnothing$、$\{2\}$、$\{1,9\}$、$\{2,4,6,8\}$ 都係等差集合,但 $\{1,2,4\}$、$\{1,5\}$、$\{7,8,9\}$ 就唔係。
如果一個摺疊有效,而且對應集合係等差集合,我哋就話佢係「超正摺疊」。可以睇下一頁嘅圖嚟理解。
畀你一個字串,計算佢有幾多種超正摺疊。
輸入格式
唯一一行包含一個由拉丁字母、數字、底線或者連字號組成嘅字串,長度為 $n$($1\le n\le 10^6$)。
輸出格式
輸出一個整數,表示呢個字串嘅超正摺疊數量。
樣例
輸入格式 1
aaaaa
輸出格式 1
9
輸入格式 2
V-oo-V
輸出格式 2
2
輸入格式 3
gritukan
輸出格式 3
1
輸入格式 4
Lhic
輸出格式 4
1
輸入格式 5
OO0OOO00O0OOOO0O00OOO0OO
輸出格式 5
6
輸入格式 6
SpyCheessee
輸出格式 6
3
輸入格式 7
Aa
輸出格式 7
1
輸入格式 8
228322
輸出格式 8
4
輸入格式 9
______________________________________
輸出格式 9
380
說明
第一個樣例入面,超正摺疊嘅對應集合係 $\varnothing$、$\{1\}$、$\{2\}$、$\{3\}$、$\{4\}$、$\{1,3\}$、$\{1,4\}$、$\{2,4\}$ 同 $\{1,2,3,4\}$。
呢個係字串 `aabccbaa` 嘅超正摺疊,對應集合係 $\{1,4,7\}$。
呢個係字串 `abc` 嘅超正摺疊,對應集合係 $\varnothing$。
呢個唔係有效摺疊,但佢確實係一個摺疊,而且對應集合係等差集合。對應集合係 $\{2,6,10\}$。
呢個唔係摺疊,因為上面部分同下面部分嘅方向一樣。
呢個唔係摺疊,因為上面部分要唔係方向一樣(如果當佢向右行),要唔係冇對齊(如果當佢向左行)。
呢個係有效摺疊,但佢嘅對應集合唔係等差集合。對應集合係 $\{4,6\}$。
TeX 就係咁樣整嘅。