#include <bits/stdc++.h>
const int N = 100010;
int a[N];
int main() {
  int n;
  scanf("%d", &n);
  std::map<int, int> map;
  for (int i = 0; i < n; ++i) {
    scanf("%d", &a[i]);
    ++map[a[i]];
  }
  if (int(map.size()) == 1) {
    if (map.begin()->first == 0) {
      puts("Yes");
      return 0;
    }
  }
  if (int(map.size()) != 3) {
    puts("No");
    return 0;
  }
  std::vector<std::pair<int, int>> vec;
  for (auto u : map) {
    vec.push_back(u);
  }
  if ((vec[0].first ^ vec[1].first ^ vec[2].first) != 0) {
    puts("No");
    return 0;
  }
  if (vec[0].second != vec[1].second || vec[1].second != vec[2].second) {
    puts("No");
    return 0;
  }
  puts("Yes");
  return 0;
}
