#include <bits/stdc++.h>
using namespace std;
bool solve(int N, vector<int> &a) {
  map<int, int> s;
  for (int i = 0; i < N; i++) {
    s[a[i]]++;
  }
  pair<int, int> v[3];
  int j = 0;
  for (auto it = s.begin(); it != s.end(); ++it, j++) {
    v[j] = *it;
  }
  if (s.size() == 3) {
    if (v[0].second == v[1].second && v[1].second == v[2].second) {
      if ((v[0].first ^ v[1].first ^ v[2].first) == 0) {
        return true;
      }
    }
    return false;
  } else if (s.size() == 2) {
    if (v[0].second < v[1].second) {
      swap(v[0], v[1]);
    }
    if (v[0].second == v[1].second * 2) {
      if ((v[0].first ^ v[0].first ^ v[1].first) == 0) {
        return true;
      }
    }
    return false;
  } else {
    if (v[0].first == 0) {
      return true;
    }
    return false;
  }
}
int main() {
  int N;
  scanf("%d", &N);
  vector<int> a(N);
  for (int i = 0; i < N; i++) {
    scanf("%d", &a[i]);
  }
  printf("%s\n", solve(N, a) ? "Yes" : "No");
}
