#include <bits/stdc++.h>
using namespace std;
const int inf = 1e9 + 5;
const int MOD = 1e9 + 7;
const int MAX = 1e5 + 5;
int a[2 * MAX];
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  int maxi = *max_element(a, a + n);
  stack<int> s;
  s.push(a[0]);
  for (int i = 1; i < n; i++) {
    if (!s.empty()) {
      if (s.top() == a[i]) {
        int u = s.top();
        s.pop();
        if (!s.empty()) {
          if (s.top() < u) {
            s.push(u);
          }
        }
      } else {
        s.push(a[i]);
      }
    } else {
      s.push(a[i]);
    }
  }
  if (s.size() == 0 || (s.size() == 1 && s.top() == maxi)) {
    cout << "YES";
  } else {
    cout << "NO";
  }
  return 0;
}
