func_code_string: #include <bits/stdc++.h>   #pragma comment(linker,  /STACK:32000000 )   const int nil = -1;   using namespace std;   inline bool read(int& val) { return scanf( %d , &val) != -1; }   inline bool read(long long& val) { return scanf( %I64d , &val) != -1; }   inline bool read(double& val) { return scanf( %lf , &val) != -1; }   inline bool read(char* val) { return scanf( %s , val) != -1; }   template <class T1, class T2>   inline bool read(T1& a, T2& b) {     return read(a) && read(b);   }   template <class T1, class T2, class T3>   inline bool read(T1& a, T2& b, T3& c) {     return read(a) && read(b) && read(c);   }   template <class T1, class T2, class T3, class T4>   inline bool read(T1& a, T2& b, T3& c, T4& d) {     return read(a) && read(b) && read(c) && read(d);   }   template <class T1, class T2, class T3, class T4, class T5>   inline bool read(T1& a, T2& b, T3& c, T4& d, T5& e) {     return read(a) && read(b) && read(c) && read(d) && read(e);   }   const int N = 1111111;   const long long mod = 1000000007;   char str[N];   long long cnt[N];   int main() {     read(str);     int n = strlen(str);     cnt[0] = 0;     long long sum = 0;     long long pow2 = 1;     for (int i = 0, _ = (n); i < _; ++i) {       if (str[i] ==  a ) {         pow2 = pow2 * 2 % mod;       } else {         sum = (sum + pow2 - 1) % mod;       }     }     cout << sum % mod << endl;     return 0;   }   