#include <bits/stdc++.h>
using namespace std;
double A[100005];
int main() {
  int n, a, M = 0;
  cin >> n;
  stack<int> S;
  for (int i = 0; i < n; i++) {
    cin >> a;
    M = max(M, a);
    if (!S.empty() && S.top() == a)
      S.pop();
    else if (!S.empty() && S.top() < a)
      goto M;
    else
      S.push(a);
  }
  if (S.size() == 0 || (S.size() == 1 && S.top() >= M)) {
    cout << "YES";
    return 0;
  }
M:
  cout << "NO";
  return 0;
}
