#include <bits/stdc++.h>
using namespace std;
unordered_map<long long, int> memo[65];
int n, xorsum;
int SG[65];
int getSprague(int val, long long mask) {
  if (memo[val][mask]) return memo[val][mask];
  long long inMask = 0;
  for (int i = 1; i <= val; i++)
    if (!(mask >> i)) inMask |= (1 << getSprague(val - i, mask | (1 << i)));
  for (int i = 0; i <= 60; i++)
    if (!(inMask >> i)) {
      memo[val][mask] = i;
      break;
    }
  return memo[val][mask];
}
int main() {
  for (int i = 1; i <= 60; i++) SG[i] = getSprague(i, 0);
  scanf("%d", &n);
  while (n--) {
    int x;
    scanf("%d", &x);
    xorsum ^= SG[x];
  }
  if (xorsum)
    printf("NO");
  else
    printf("YES");
  return 0;
}
