#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-6;
const int mod = 1e9 + 7;
const int maxn = 2e5 + 100;
const int maxm = 2e6 + 100;
const int inf = 0x3f3f3f3f;
const double pi = acos(-1.0);
stack<int> s;
int main() {
  int n;
  scanf("%d", &n);
  int mx = -1;
  for (int i = 1; i <= n; i++) {
    int x;
    scanf("%d", &x);
    mx = max(mx, x);
    if (!s.empty()) {
      if (s.top() < x) {
        return printf("NO"), 0;
      }
      if (s.top() == x) {
        s.pop();
      } else if (s.top() > x) {
        s.push(x);
      }
    } else
      s.push(x);
  }
  if (s.size() > 1)
    return printf("NO"), 0;
  else if (s.size() == 1) {
    if (s.top() < mx) return printf("NO"), 0;
  }
  printf("YES");
  return 0;
}
