#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
unsigned int f[2][N];
int n;
char s[N];
int cnt;
unsigned int qpow(unsigned int a, int b) {
  unsigned int res = 1;
  if (b < 0) return 0;
  while (b) {
    if (b & 1) res = res * a;
    a = a * a;
    b >>= 1;
  }
  return res;
}
signed main() {
  scanf("%d", &n);
  if (n & 1) return puts("0"), 0;
  scanf("%s", s + 1);
  f[0][0] = 1;
  for (int i = 1; i <= n; ++i) {
    if (s[i] != '?') {
      ++cnt;
      register int tmp = i / 2;
      for (register int j = 0; j <= tmp; ++j) {
        f[i & 1][j] = f[(i & 1) ^ 1][j];
      }
    } else {
      register int tmp = i / 2;
      f[i & 1][0] = f[(i & 1) ^ 1][0];
      for (register int j = 1; j <= tmp; ++j) {
        f[i & 1][j] = f[(i & 1) ^ 1][j - 1] + f[(i & 1) ^ 1][j];
      }
    }
  }
  cout << qpow(25, n / 2 - cnt) * f[n & 1][n / 2] << endl;
  return 0;
}
