#include <bits/stdc++.h>
const int TAM = 100005;
inline unsigned int min(unsigned int a, unsigned int b) {
  return a < b ? a : b;
}
unsigned int dp[TAM];
int n;
char s[TAM];
int main() {
  std::cin.tie(0);
  std::ios_base::sync_with_stdio(0);
  std::cin >> n >> s;
  int i, open;
  int openCnt = 0;
  for (i = 0; i < n; ++i)
    if (s[i] != '?') openCnt++;
  if (2 * openCnt > n) {
    std::cout << "0\n";
    return 0;
  }
  dp[0] = 1;
  unsigned int* curDP = dp;
  int maxOpen = 0;
  for (i = n - 1; i >= 0; --i) {
    maxOpen = min(n / 2, i);
    if ((i + maxOpen) % 2 != 0) maxOpen++;
    if (s[i] == '?')
      for (open = maxOpen - 1; open >= 0; open -= 2)
        curDP[open + 2] += curDP[open];
    curDP++;
  }
  unsigned int ans = curDP[0];
  int reps = (n >> 1) - openCnt;
  for (i = 0; i < reps; ++i) ans *= 25;
  std::cout << ans << '\n';
  return 0;
}
