#include <bits/stdc++.h>
using namespace std;
const long long mINF = 1000 * 1000 * 1000 + 9;
const double ebs = 0.000001;
int main() {
  int kol_vo;
  cin >> kol_vo;
  vector<int> v(kol_vo);
  for (int c = 0; c < kol_vo; c++) cin >> v[c];
  vector<int> dop;
  dop.push_back(31);
  dop.push_back(28);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(31);
  dop.push_back(28);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(31);
  dop.push_back(29);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(31);
  dop.push_back(28);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(31);
  dop.push_back(28);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  dop.push_back(30);
  dop.push_back(31);
  for (int c = 0; c < dop.size() - kol_vo; c++) {
    bool b = true;
    for (int i = 0; i < kol_vo; i++) {
      if (v[i] != dop[c + i]) b = false;
    }
    if (b == true) {
      cout << "YES";
      return 0;
    }
  }
  cout << "NO";
  return 0;
}
