aaaaabb
 aabaaaa
 babbabaabbbbabwbvbhbbbaaabbabbbbbbbkabbbbabaaabbbbbbajabbaaabazbbbzbalbabbwbbaabbabacabdbabbbfaaabbb
 baaahbbbba
 ababavvvv
 abnxabbaab
 krflnzhter
 amaabbbbxaabbbabaabaabbaaabaaaaabibbabaabaaabaabcaaxabablbbbbmbbbaaaaaabbaabbbaaabaaaababaababbabbbb
 babbbaaaaaabbbaabaaaaaoaabababaababaaaaababaaaaaaabbbbbbaaapaabaaabaaababaaaabaaaabaaaaababaaaabaaab

5
 14
 42467327
 7
 7
 11
 0
 98718509
 813881762

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.*;

public class TheFairNutAndString {
	
	public static void main(String args[])
	{
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		
		BigInteger numOfSets = new BigInteger("0");
		
		int firstPointer = 0;
		int lastPointer = str.length()-1;
		
		int left[] = new int[str.length()];
		int right[] = new int[str.length()];
		
		for(int i=1;i<str.length();i++)
		{
			left[i] = left[i-1];
			if(str.charAt(i-1) == 'a')
			{
				left[i] += 1;
			}
		}
		
		for(int i=str.length()-2;i>=0;i--)
		{
			right[i] = right[i+1];
			if(str.charAt(i+1) == 'a')
			{
				right[i] += 1;
			}
		}
		
		int numOfA = right[0];
		if(str.charAt(0) == 'a')
			numOfA += 1;
		
		numOfSets = numOfSets.add(BigInteger.valueOf(numOfA));
		
		ArrayList<Integer> indexesOfB = new ArrayList<>();
		
		for(int i=0 ; i<str.length(); i++)
		{
			if(str.charAt(i) == 'b')
			{
				indexesOfB.add(i);
			}
		}
		
		ArrayList<Integer> sections = new ArrayList<>();
		
		for(int i = 0;i<indexesOfB.size();i++)
		{
			int index = indexesOfB.get(i);
			
			if(i == 0)
			{
				int leftSec = left[index];
				if(leftSec != 0)
					sections.add(leftSec);
			}
			
			int rightSec = right[index];
			
			if(i != indexesOfB.size()-1)
			{
				int nextIndex = indexesOfB.get(i+1);
				rightSec -= right[nextIndex];
			}
			
			if(rightSec!=0)
			{
				sections.add(rightSec);
			}
		}
		
		long result = 1;
		long sum = 0;
		
		for(int i = 0; i<sections.size();i++)
		{
			result = result * (sections.get(i)+1);
			sum += sections.get(i);
		}
		
		int modulo = 1000000007;
		
		numOfSets = numOfSets.add(BigInteger.valueOf(result));
		numOfSets = numOfSets.subtract(BigInteger.valueOf(sum+1));
		System.out.println(numOfSets.mod(BigInteger.valueOf(modulo)));
	}
}