#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(0);
  int n;
  string a;
  cin >> n >> a;
  if (n % 2 == 1) {
    cout << "0";
    return 0;
  }
  int pol = n / 2;
  vector<vector<unsigned> > dp(2, vector<unsigned>(n + 1, 0));
  dp[1][1] = 1;
  int kon = 1, akt = 0, start;
  for (int i = 2; i <= n; ++i) {
    if (i <= pol)
      ++kon;
    else
      --kon;
    start = ((i & 1) == 1) ? 1 : 0;
    if (a[i - 1] == '?') {
      if (start == 0) {
        dp[akt][0] = dp[akt ^ 1][1];
        start += 2;
      }
      for (int j = start; j <= kon; j += 2)
        dp[akt][j] = dp[akt ^ 1][j - 1] + dp[akt ^ 1][j + 1];
    } else {
      if (start == 0) {
        dp[akt][0] = 0;
        start += 2;
      }
      for (int j = start; j <= kon; j += 2) dp[akt][j] = dp[akt ^ 1][j - 1];
    }
    akt ^= 1;
  }
  int nPuste = 0;
  for (int i = 0; i < n; ++i)
    if (a[i] != '?') ++nPuste;
  int mno = (n - 2 * nPuste) / 2;
  unsigned odp = dp[0][0];
  for (int i = 0; i < mno; ++i) odp *= 25;
  cout << odp;
  return 0;
}
