#include <bits/stdc++.h>
using namespace std;
bool isPrime(long long int x) {
  if (x < 2) return false;
  for (long long int i = 2; i * i <= x; i++) {
    if (x % i == 0) return false;
  }
  return true;
}
long long int gcd(long long int a, long long int b) {
  if (a == 0) return b;
  return gcd(b % a, a);
}
long long int lcm(long long int a, long long int b) {
  return ((a * b) / gcd(a, b));
}
long long int fact(long long int x) {
  long long int result = 1;
  for (long long int i = x; i >= 2; i--) {
    result *= i;
  }
  return result;
}
const long double PI = acos(-1);
const double E = 2.718281828;
const long long int MX = 10e9;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long int n;
  cin >> n;
  vector<long long int> v(n);
  for (long long int i = 0; i < n; i++) cin >> v[i];
  stack<long long int> st;
  long long int i = 0;
  while (i < n) {
    if (st.empty()) {
      st.push(v[i]);
    } else {
      if (abs(v[i] - st.top()) % 2) {
        st.push(v[i]);
      } else
        st.pop();
    }
    i++;
  }
  if (st.size() <= 1)
    cout << "YES";
  else
    cout << "NO";
  return 0;
}
