#include <bits/stdc++.h>
using namespace std;
int ar[200005];
char ch[200005];
int n, m, ii, k;
long long add(long long a, long long b) {
  a += b;
  if (a >= 1000000007) a -= 1000000007;
  return a;
}
long long mul(long long a, long long b) {
  a *= b;
  a %= 1000000007;
  return a;
}
void solve() {
  scanf("%d%s", &n, ch);
  long long a = 0, ab = 0, abc = 0, gun = 1;
  for (int i = 0; i < n; i++) {
    if (ch[i] == 'a') {
      a = add(a, gun);
    } else if (ch[i] == 'b') {
      ab = add(ab, a);
    } else if (ch[i] == 'c') {
      abc = add(abc, ab);
    } else {
      long long tema = add(a, add(add(a, gun), a));
      long long temab = add(ab, add(add(ab, a), ab));
      long long temabc = add(abc, add(add(abc, ab), abc));
      a = tema;
      ab = temab;
      abc = temabc;
      gun = mul(gun, 3);
    }
  }
  printf("%lld\n", abc);
}
int main() {
  int t = 1;
  while (t--) solve();
  return 0;
}
