aaaaabb
 aabaaaa
 babbabaabbbbabwbvbhbbbaaabbabbbbbbbkabbbbabaaabbbbbbajabbaaabazbbbzbalbabbwbbaabbabacabdbabbbfaaabbb
 baaahbbbba
 ababavvvv
 abnxabbaab
 krflnzhter
 amaabbbbxaabbbabaabaabbaaabaaaaabibbabaabaaabaabcaaxabablbbbbmbbbaaaaaabbaabbbaaabaaaababaababbabbbb
 babbbaaaaaabbbaabaaaaaoaabababaababaaaaababaaaaaaabbbbbbaaapaabaaabaaababaaaabaaaabaaaaababaaaabaaab

5
 14
 42467327
 7
 7
 11
 0
 98718509
 813881762

#include <bits/stdc++.h>
using namespace std;
template <class Temp>
vector<Temp> read(long long n) {
  vector<Temp> v(n);
  for (int i = 0; i < n; i++) {
    cin >> v[i];
  }
  return v;
}
template <class Temp>
void print(vector<long long> &v) {
  for (Temp el : v) {
    cout << el << " ";
  }
  cout << endl;
}
template <class Temp>
vector<vector<Temp>> matrix(long long n, long long m, long long value) {
  return vector<vector<Temp>>(n, vector<Temp>(m));
}
template <class Temp>
vector<vector<Temp>> readMatrix(long long n, long long m) {
  vector<vector<Temp>> matrix(n, vector<long long>(m, 0));
  for (long long i = 0; i < n; i++) {
    for (long long j = 0; j < m; j++) {
      cin >> matrix[i][j];
    }
  }
  return matrix;
}
long long mod = 1000000007;
void solve(long long t) {
  string s;
  cin >> s;
  vector<long long> v;
  v.push_back(0);
  for (char c : s) {
    if (c == 'a') {
      v.back()++;
    }
    if (c == 'b' and v.back() != 0) {
      v.push_back(0);
    }
  }
  if (v.back() == 0) {
    v.pop_back();
  }
  long long counter = 1;
  for (long long i = 0; i < v.size(); i++) {
    counter *= v[i] + 1;
    counter %= mod;
  }
  counter--;
  cout << counter << "\n";
}
void test() {
  long long T;
  cin >> T;
  for (long long t = 0; t < T; t++) {
    solve(t);
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  solve(0);
}
