#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
const long long LINF = 1e18;
const long long MOD = 1e9 + 7;
int x_pos[4] = {1, 0, -1, 0}, y_pos[4] = {0, 1, 0, -1};
int ctoi(char c) {
  if (c >= '0' && c <= '9') {
    return c - '0';
  }
  return 0;
}
char upper(char c) { return c - 0x20; }
char lower(char c) { return c + 0x20; }
void unique_vector(vector<int>& v) {
  sort(v.begin(), v.end());
  v.erase(unique(v.begin(), v.end()), v.end());
}
template <typename A, size_t N, typename T>
void Fill(A (&array)[N], const T& val) {
  std::fill((T*)array, (T*)(array + N), val);
}
int main() {
  int n;
  cin >> n;
  vector<int> cnt(50, 0), v(n);
  for (int i = 0; i < (n); ++i) {
    cin >> v[i];
  }
  for (int i = 0; i < (n); ++i) {
    for (int j = 0; j < 50; j++) {
      if (v[i] & (1 << j)) cnt[j] = 1;
    }
  }
  for (int i = 0; i < (50); ++i) {
    if (cnt[i] % 2 != 0) {
      cout << "No" << endl;
      return 0;
    }
  }
  cout << "Yes" << endl;
}
