#include <bits/stdc++.h>
using namespace std;
int n, a[200007] = {0};
stack<int> s;
int main() {
  scanf("%d", &n);
  int maxx = 0;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    maxx = max(maxx, a[i]);
  }
  for (int i = 1; i <= n; i++)
    if (s.empty() || a[i] < s.top())
      s.push(a[i]);
    else if (a[i] == s.top())
      s.pop();
    else if (a[i] > s.top()) {
      puts("NO");
      return 0;
    }
  if (n & 1) {
    if (s.size() > 1) {
      puts("NO");
      return 0;
    }
    if (maxx <= s.top())
      puts("YES");
    else
      puts("NO");
    return 0;
  } else if (s.size() < 2)
    puts("YES");
  else
    puts("NO");
  return 0;
}
