#include <bits/stdc++.h>
using namespace std;
const int maxn = 300500;
int n;
int a[maxn];
set<pair<int, int>> seg, eseg;
int main() {
  scanf("%d", &n);
  for (int i = 0; i < (int)(n); ++i) {
    scanf("%d", &a[i]);
    a[i] %= 2;
  }
  for (int i = 0; i < (int)(n); ++i) {
    int j = i;
    while (j + 1 < n && a[j + 1] == a[i]) ++j;
    seg.insert({i, j});
    if ((j - i + 1) % 2 == 0) eseg.insert({i, j});
    i = j;
  }
  while (!eseg.empty() && seg.size() > 1) {
    auto cur = *eseg.begin();
    seg.erase(cur);
    eseg.erase(cur);
    auto it = seg.lower_bound(cur);
    if (it != seg.end()) {
      if ((it->second - it->first + 1) % 2 == 0) eseg.erase(*it);
      cur.second = it->second;
      seg.erase(it);
    }
    it = it = seg.lower_bound(cur);
    if (it != seg.begin()) {
      --it;
      if ((it->second - it->first + 1) % 2 == 0) eseg.erase(*it);
      cur.first = it->first;
      seg.erase(it);
    }
    seg.insert(cur);
    if ((cur.second - cur.first + 1) % 2 == 0) eseg.insert(cur);
  }
  puts(seg.size() == 1 ? "YES" : "NO");
}
