#include int main () { int n = 0; int a[500000] = {}; int res = 0; int is_ok = 0; int acc = 0; int cnt[8192] = {}; res = scanf("%d", &n); for (int i = 0; i < n; i++) { res = scanf("%d", a+i); acc ^= a[i]; if (cnt[acc] > 0) { is_ok = 1; } cnt[acc]++; } if (acc > 0) { is_ok = 0; } else if (n <= 8192) { int dp[8193][8192] = {}; dp[0][a[0]] = 1; for (int i = 1; i < n-1; i++) { for (int j = 0; j < 8192; j++) { dp[i][j] = dp[i-1][j]; } if (dp[i][a[i]] > 0 || dp[i][0] > 0) { is_ok = 1; } for (int j = 0; j < 8192; j++) { dp[i][(j^a[i])] += dp[i-1][j]; } } } if (is_ok > 0) { printf("Yes\n"); } else { printf("No\n"); } return 0; }