#include <bits/stdc++.h>
int diff[4][2] = {
    {0, -1},
    {-1, 0},
    {1, 0},
    {0, 1},
};
int Min(int a, int b) { return (a) < (b) ? (a) : (b); }
int Max(int a, int b) { return (a) > (b) ? (a) : (b); }
long long Minl(long long a, long long b) { return (a) < (b) ? (a) : (b); }
long long Maxl(long long a, long long b) { return (a) > (b) ? (a) : (b); }
int main() {
  int n;
  scanf("%d", &n);
  int a[3];
  for (int i = 0, i_len = (int)(3); i < i_len; i++) {
    scanf("%d", &a[i]);
  }
  if (n % 3 != 0) {
    puts("No");
    return 0;
  }
  if ((a[0] ^ a[1]) != a[2]) {
    puts("No");
    return 0;
  }
  for (int i = (int)(3), i_len = (int)(n); i < i_len; i++) {
    int ai;
    scanf("%d", &ai);
    if (ai != a[i % 3]) {
      puts("No");
      return 0;
    }
  }
  puts("Yes");
}
