The Fair Nut found a string s. The string consists of lowercase Latin letters. The Nut is a curious guy, so he wants to find the number of strictly increasing sequences p_1, p_2, …, p_k, such that: 

  1. For each i (1 ≤ i ≤ k), s_{p_i} = 'a'. 
  2. For each i (1 ≤ i < k), there is such j that p_i < j < p_{i + 1} and s_j = 'b'. 



The Nut is upset because he doesn't know how to find the number. Help him.

This number should be calculated modulo 10^9 + 7.

Input

The first line contains the string s (1 ≤ |s| ≤ 10^5) consisting of lowercase Latin letters.

Output

In a single line print the answer to the problem — the number of such sequences p_1, p_2, …, p_k modulo 10^9 + 7.

Examples

Input

abbaa


Output

5

Input

baaaa


Output

4

Input

agaa


Output

3

Note

In the first example, there are 5 possible sequences. [1], [4], [5], [1, 4], [1, 5].

In the second example, there are 4 possible sequences. [2], [3], [4], [5].

In the third example, there are 3 possible sequences. [1], [3], [4].
MODULO = 1000000007

s = input()

t = ''
bEncouter = False
aCounter = 0
bCounter = 0

for c in s:
    if c == 'a':
        t += 'a'
        bEncouter = False
        aCounter += 1
    elif c == 'b':
        if not bEncouter:
            t += 'b'
            bEncouter = True
            bCounter += 1

if aCounter > 0 and bCounter > 0:
    if t[0] == 'b':
        t = t[1:]
    if t[-1] == 'b':
        t = t[:-1]
    
    aEnd = [0] * len(t)
    bEnd = [0] * len(t)
    sumUntilLastB = 0
    lastB = 0

    for c in range(len(t)):
        if t[c] == 'a':
            #aEnd[c] = (sum(aEnd[:lastB]) + 1) % MODULO
            aEnd[c] = (sumUntilLastB + 1) % MODULO
        elif t[c] == 'b':
            sumUntilLastB = (sumUntilLastB + sum(aEnd[lastB:c])) % MODULO
            lastB = c
    
    #print(t)
    #print(aEnd)
    #print(bEnd)

    print(sum(aEnd) % MODULO) 



else:
    print(aCounter)