#agc027e. [agc027_e]ABBreviate
[agc027_e]ABBreviate
Problem Statement
There is a string consisting of a
and b
. Snuke can perform the following two kinds of operation any number of times in any order:
- Choose an occurrence of
aa
as a substring, and replace it withb
. - Choose an occurrence of
bb
as a substring, and replace it witha
.
How many strings can be obtained by this sequence of operations? Find the count modulo .
Constraints
- consists of
a
andb
.
Input
Input is given from Standard Input in the following format:
Output
Print the number of strings that can be obtained, modulo .
Sample Input 1
aaaa
Sample Output 1
6
Six strings can be obtained:
aaaa
aab
aba
baa
bb
a
Sample Input 2
aabb
Sample Output 2
5
Five strings can be obtained:
aabb
aaa
bbb
ab
ba
Sample Input 3
ababababa
Sample Output 3
1
Snuke cannot perform any operation.
Sample Input 4
babbabaaba
Sample Output 4
35