#include <bits/stdc++.h>
const int MAX_SIZE = 100000;
unsigned int g[MAX_SIZE * 3 + 10], *f;
int len;
char str[MAX_SIZE + 10];
inline int min(int a, int b) { return a < b ? a : b; }
int main() {
  scanf("%d", &len);
  if (len & 1) {
    printf("0\n");
    return 0;
  }
  scanf("%s", str + 1);
  f = g + MAX_SIZE + 10;
  f[0] = 1;
  for (int i = 1; i <= len; i++) {
    register int bound = min(i, len - i);
    if (str[i] != '?') {
      --f;
      f[0] = 0;
    } else {
      ++f;
      for (register int j = bound + 2; j > 0; j -= 2) f[j] += f[j - 2] * 25;
    }
  }
  printf("%u\n", f[0]);
  return 0;
}
