#include <bits/stdc++.h>
using namespace std;
const int N = (1e6) + 5;
const int M = (60) + 5;
int memo[M][M];
int n, a[N];
int grundy(int n, int last) {
  if (n == 0) {
    return 0;
  }
  int &ret = memo[n][last];
  if (ret != -1) return ret;
  set<int> S;
  for (int i = last + 1; i <= n; i += 1) {
    S.insert(grundy(n - i, i));
  }
  ret = 0;
  while (S.count(ret)) ret++;
  return ret;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    scanf("%d", a + i);
  }
  memset(memo, -1, sizeof memo);
  int g = 0;
  for (int i = 0; i < n; i += 1) {
    g ^= grundy(a[i], 0);
  }
  cout << (g == 0 ? "YES" : "NO") << '\n';
  return 0;
}
