#include <bits/stdc++.h>
using namespace std;
long long int dp[205][5], n;
string s;
map<char, long long int> mp;
long long int func(long long int i, long long int prev) {
  if (i == n) {
    return 1;
  }
  if (dp[i][prev] != -1) {
    return dp[i][prev];
  }
  long long int ans = 0;
  if (s[i] == '?') {
    if (ans >= 2) ans = 2;
    if (prev != mp['M'] && s[i + 1] != 'M') ans += func(i + 1, mp['M']);
    if (ans >= 2) ans = 2;
    if (prev != mp['Y'] && s[i + 1] != 'Y') ans += func(i + 1, mp['Y']);
    if (ans >= 2) ans = 2;
    if (prev != mp['C'] && s[i + 1] != 'C') ans += func(i + 1, mp['C']);
  } else {
    if (ans >= 2) ans = 2;
    if (prev != mp[s[i]]) ans += func(i + 1, mp[s[i]]);
  }
  return dp[i][prev] = ans;
}
int main() {
  long long int i, j;
  cin >> n >> s;
  s.push_back('A');
  memset(dp, -1, sizeof dp);
  mp['C'] = 1, mp['M'] = 2, mp['Y'] = 3, mp['?'] = 4;
  long long int ans = func(0, 0);
  if (ans >= 2) {
    cout << "Yes" << endl;
  } else
    cout << "No" << endl;
}
