#abc214f. [abc214_f]Substrings

[abc214_f]Substrings

Problem Statement

Given is a string SS. From this string, Takahashi will make a new string TT as follows.

  • First, mark one or more characters in SS. Here, no two marked characters should be adjacent.
  • Next, delete all unmarked characters.
  • Finally, let TT be the remaining string. Here, it is forbidden to change the order of the characters.

How many strings are there that can be obtained as TT? Find the count modulo (109+7)(10^9 + 7).

Constraints

  • SS is a string of length between 11 and 2times1052 \\times 10^5 (inclusive) consisting of lowercase English letters.

Input

Input is given from Standard Input in the following format:

SS

Output

Print the number of different strings that can be obtained as TT, modulo (109+7)(10^9 + 7).


Sample Input 1

abc

Sample Output 1

4

There are four strings that can be obtained as TT: a, b, c, and ac.

Marking the first character of SS yields a;

marking the second character of SS yields b;

marking the third character of SS yields c;

marking the first and third characters of SS yields ac.

Note that it is forbidden to, for example, mark both the first and second characters.


Sample Input 2

aa

Sample Output 2

1

There is just one string that can be obtained as TT, which is a. Note that marking different positions may result in the same string.


Sample Input 3

acba

Sample Output 3

6

There are six strings that can be obtained as TT: a, b, c, aa, ab, and ca.


Sample Input 4

chokudai

Sample Output 4

54