#include <bits/stdc++.h>
using namespace std;

using ll = long long;
constexpr ll mod = 1e9 + 7;

int main() {
    string s;
    cin >> s;
    const int n = s.size();
    vector<ll> v(2);
    ll ans = 0, tot = 1;
    for(int i = 0; i < n; ++i) {
        if(s[i] == '?') {
            ans = (v[1] + ans * 3) % mod;
            v[1] = (v[1] * 3 + v[0]) % mod;
            v[0] = (tot + v[0] * 3) % mod;
            (tot *= 3) %= mod;
        } else if(s[i] == 'A') {
            (v[0] += tot) %= mod;
        } else if(s[i] == 'B') {
            (v[1] += v[0]) %= mod;
        } else {
            (ans += v[1]) %= mod;
        }
    }
    cout << ans << endl;
}
