#include <bits/stdc++.h>
using namespace std;
int grundy[65];
vector<int> cumu;
int main() {
  int i, j, k;
  grundy[0] = 0;
  cumu.push_back(0);
  for (i = 1; i <= 60; i++) cumu.push_back(cumu[cumu.size() - 1] + i);
  for (i = 1; i <= 60; i++) {
    set<int> s;
    int x = lower_bound(cumu.begin(), cumu.end(), i) - cumu.begin();
    for (j = 0; j <= i - x; j++) s.insert(grundy[j]);
    int temp = 0;
    set<int>::iterator it;
    for (it = s.begin(); it != s.end(); it++) {
      if ((*it) != temp) {
        grundy[i] = temp;
        break;
      }
      temp++;
    }
    if (it == s.end()) grundy[i] = temp;
  }
  int n;
  scanf("%d", &n);
  int ans = 0;
  for (i = 1; i <= n; i++) {
    scanf("%d", &j);
    ans ^= grundy[j];
  }
  if (ans != 0)
    printf("NO\n");
  else
    printf("YES\n");
  return 0;
}
