aaaaabb
 aabaaaa
 babbabaabbbbabwbvbhbbbaaabbabbbbbbbkabbbbabaaabbbbbbajabbaaabazbbbzbalbabbwbbaabbabacabdbabbbfaaabbb
 baaahbbbba
 ababavvvv
 abnxabbaab
 krflnzhter
 amaabbbbxaabbbabaabaabbaaabaaaaabibbabaabaaabaabcaaxabablbbbbmbbbaaaaaabbaabbbaaabaaaababaababbabbbb
 babbbaaaaaabbbaabaaaaaoaabababaababaaaaababaaaaaaabbbbbbaaapaabaaabaaababaaaabaaaabaaaaababaaaabaaab

5
 14
 42467327
 7
 7
 11
 0
 98718509
 813881762

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Scanner;

public final class ThefairNutAndStringCF {
    public static  int max= (int) (Math.pow(10,9)+7);
    public static void main(String[] args) {
            BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
            Scanner sc=new Scanner(br);
            String s=sc.next();
            StringBuilder sb=new StringBuilder(s);
            int i=0;
            while (i<sb.length()){
                if(sb.charAt(i)!='a' && sb.charAt(i)!='b'){
                    sb.replace(i,i+1,"");
                }else
                    i++;
            }
            int ii=0;
            ArrayList<Integer> l=new ArrayList<>();
            while (ii<sb.length()){
                while (ii<sb.length() && sb.charAt(ii)!='a'){
                    ii++;
                }
                int count=0;
                while (ii<sb.length() && sb.charAt(ii)=='a'){
                    ii++;
                    count++;
                }
                l.add(count);
            }
            if(l.size()==0){
                System.out.println("0");
            }else if(l.size()==1){
                System.out.println(l.get(0));
            }else{
                long ans=1;
                for(int j=0;j<l.size();j++){
                    ans=((ans)%max*(l.get(j)+1)%max)%max;
                }
                System.out.println(ans-1);
            }
    }
}
