#include <bits/stdc++.h>
using namespace std;
const int N = 200005;
int n, i, a[N];
int main() {
  stack<int> s;
  int maxh = 0, flag = 1;
  cin >> n;
  for (i = 1; i <= n; i++) {
    cin >> a[i];
    maxh = max(maxh, a[i]);
    if (!s.empty() && s.top() == a[i])
      s.pop();
    else if (!s.empty() && s.top() < a[i])
      flag = 0;
    else
      s.push(a[i]);
  }
  if (flag) {
    if (s.size() == 0 || (s.size() == 1 && s.top() == maxh))
      cout << "YES\n";
    else
      cout << "NO\n";
  } else
    cout << "NO\n";
  return 0;
}
