#include <bits/stdc++.h>
using namespace std;
using Int = long long;
const double EPS = 1e-10;
long long const MOD = 1000000007;
long long mod_pow(long long x, long long n) {
  long long res = 1;
  for (int i = 0; i < 60; i++) {
    if (n >> i & 1) res = res * x % MOD;
    x = x * x % MOD;
  }
  return res;
}
template <typename T>
T gcd(T a, T b) {
  return b != 0 ? gcd(b, a % b) : a;
}
template <typename T>
T lcm(T a, T b) {
  return a * b / gcd(a, b);
}
void fastInput() {
  cin.tie(0);
  ios::sync_with_stdio(false);
}
int main(void) {
  int N;
  cin >> N;
  vector<long long> a(N);
  map<int, int> m;
  for (int i = 0; i < N; i++) {
    cin >> a[i];
    m[a[i]]++;
  }
  int cnt = 1;
  sort(a.begin(), a.end());
  vector<long long> parsed;
  parsed.push_back(a[0]);
  for (int i = 1; i < N; i++) {
    if (a[i] != a[i - 1]) {
      parsed.push_back(a[i]);
      cnt++;
    }
  }
  if (cnt != 3) {
    cout << "No" << endl;
    return 0;
  }
  if ((parsed[0] ^ parsed[1]) == parsed[2] && m[parsed[0]] == m[parsed[1]] &&
      m[parsed[0]] == m[parsed[2]]) {
    cout << "Yes" << endl;
    return 0;
  } else {
    cout << "No" << endl;
    return 0;
  }
}
