#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 5;
const int N = 1e6;
long long int a[maxn], c[3];
vector<pair<long long int, long long int> > s;
int main() {
  long long int n, i, ma = 0, x, j;
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> x;
    if (s.empty() || x < s.back().first)
      s.push_back(make_pair(x, 1));
    else if (x == s.back().first) {
      s.back().second++;
      while (s.size() > 1 && s.back().second % 2 == 0) {
        s.pop_back();
        s.back().second += 2;
      }
    } else if (x > s.back().first) {
      for (int j = 0; j < s.size(); j++) {
        if (s[j].second & 1) {
          printf("NO\n");
          return 0;
        }
      }
      s.clear();
      s.push_back(make_pair(x, 1));
    }
  }
  if (s.size() > 1)
    printf("NO\n");
  else
    printf("YES\n");
  return 0;
}
