aaaaabb
 aabaaaa
 babbabaabbbbabwbvbhbbbaaabbabbbbbbbkabbbbabaaabbbbbbajabbaaabazbbbzbalbabbwbbaabbabacabdbabbbfaaabbb
 baaahbbbba
 ababavvvv
 abnxabbaab
 krflnzhter
 amaabbbbxaabbbabaabaabbaaabaaaaabibbabaabaaabaabcaaxabablbbbbmbbbaaaaaabbaabbbaaabaaaababaababbabbbb
 babbbaaaaaabbbaabaaaaaoaabababaababaaaaababaaaaaaabbbbbbaaapaabaaabaaababaaaabaaaabaaaaababaaaabaaab

5
 14
 42467327
 7
 7
 11
 0
 98718509
 813881762

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    static Scanner read;
    final static long MODULO = 1000000007;
    public static void main(String args[]){
        read = new Scanner(System.in);
        String s = read.next();
        int n = s.length();
        int foundB = 0;
        long sol = 1;
        int arr[] = new int[n];
        for (int i = 0; i < n; i++) {
            char c = s.charAt(i);
            if(i > 0) arr[i] += arr[i - 1];
            if (c == 'a') {
                arr[i]++;
            }
        }
        int k = 0;
        for (int i = 0; i < n; i++) {
            char c = s.charAt(i);
            if (c == 'b'){
                if (i > 0 && s.charAt(i-1) == 'b') continue;
                int count = get_count_of_A(arr, k, i-1);
                sol = (sol * (count+1)) % MODULO;
                k = i+1;
            }
        }
        if (k < n-1) {
            int count = get_count_of_A(arr, k, n-1);
            sol = (sol * (count+1)) % MODULO;
        }
        sol = (sol - 1 + MODULO) % MODULO;
        System.out.println(sol);
    }

    public static int get_count_of_A(int arr[], int l, int r){
        if (l > r) return 0;
        if (l == 0) return arr[r];
        return arr[r] - arr[l-1];
    }
}