#include <bits/stdc++.h>
int asc(const void *a, const void *b) { return *(int *)a - *(int *)b; }
int main() {
  static int n, a[200000];
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
  }
  qsort(a, n, sizeof(int), asc);
  if (n % 3 != 0) {
    printf("No\n");
    return 0;
  }
  int flg = 0;
  for (int i = 0; i < n; i++) {
    if (a[i] != 0) {
      flg = 1;
      break;
    }
  }
  if (!flg) {
    printf("Yes\n");
    return 0;
  }
  if (a[0] != a[n / 3 - 1] || a[n / 3] != a[2 * n / 3 - 1] ||
      a[2 * n / 3] != a[n - 1]) {
    printf("No\n");
    return 0;
  }
  if ((a[0] ^ a[n - 1]) == a[n / 3]) {
    printf("Yes\n");
    return 0;
  }
  printf("No\n");
  return 0;
}
