#include <bits/stdc++.h>
using namespace std;

struct P { int v, n; };

int main() {
  int N;
  cin >> N;
  map<int, int> ma;
  for (int i; i < N; ++i) {
    int a;
    cin >> a;
    ++ma[a];
  }
  bool ans{};

  vector<P> va;
  for (const auto &p : ma) {
    va.push_back({p.first, p.second});
  }
  sort(va.begin(), va.end(), [](P l, P r) { return l.n > r.n; });
  switch (va.size()) {
    case 1:
      if (va[0].v ^ va[0].v == va[0].v) {
        ans = true;
      }
      break;
    case 2:
      if (va[0].n == va[1].n * 2 &&
          va[0].v ^ va[0].v == va[1].v && va[0].v ^ va[1].v == va[0].v) {
        ans = true;
      }
      break;
    case 3:
      if (va[0].n == va[1].n && va[1].n == va[2].n &&
          va[0].v ^ va[1].v == va[2].v && va[1].v ^ va[2].v == va[0].v && va[2].v ^ va[0].v == va[1].v) {
        ans = true;
      }
      break;
    default:break;
  }

  cout << (ans ? "Yes" : "No") << endl;
  return 0;
}
