#include <bits/stdc++.h>
int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  std::istream& reader = std::cin;
  int n;
  reader >> n;
  std::string s;
  reader >> s;
  if (n & 1) {
    puts("0");
    return 0;
  }
  std::vector<unsigned int> f(n + n + 20);
  int start = n;
  f[start] = 1;
  int freedom = n / 2;
  for (int at = 0; at < n; ++at) {
    char c = s[at];
    if (c == '?') {
      unsigned int prev = 0, next = 0;
      int bound = start + std::min({n / 2, at + 1, n - at});
      f[bound + 1] = f[bound + 2] = f[bound + 3] = f[bound + 4] = 0;
      if (~at & 1) {
        for (int i = start; i <= bound; i += 4) {
          f[i] += f[i + 2];
          f[i + 2] += f[i + 4];
        }
      } else {
        for (int i = start - 1; i <= bound; i += 4) {
          f[i] += f[i + 2];
          f[i + 2] += f[i + 4];
        }
      }
      --start;
    } else {
      --start;
      --freedom;
    }
  }
  unsigned int result = f[start];
  for (int i = 0; i < freedom; ++i) result *= 25;
  printf("%u\n", result);
}
