#include <bits/stdc++.h>

#define INF ll_MAX
#define MOD 1000000007
#define REP(i,n) for(int i=0;i<n;i++)
#define all(x) (x).begin(),(x).end()

typedef long long ll;
typedef std::pair<int,int> pii;

using namespace std;

int main(void){
    cin.tie(0);
    ios::sync_with_stdio(false);

    int n;
    cin >> n;

    bool ans = false;
    vector<int> a(n);
    map<int,int> mp;

    int c_zero = 0;
    REP(i,n){
        cin >> a[i];
        mp[a[i]]++;
        if(a[i] == 0)c_zero++;
    }

    //全ての帽子に書かれた数が０
    if(c_zero == n){
        cout << "Yes" << endl;
        return 0;
    }

    //xが書かれた帽子が(2N)/3枚、０が書かれた数がN/3枚
    if(n%3 == 0 && c_zero == n/3){
        for(auto p: mp){
            if(p.second == 2*n/3){
                cout << "Yes" << endl;
                return 0;
            }
        }
    }

    //x⊕y⊕z=0が成立するような３つの相異なる整数x,y,zが書かれた帽子がそれぞれN/3枚
    //x_0 == x_3より、xの種類が３より大きい場合は不成立
    // cout << mp.size() << endl;
    if(mp.size() == 3){
        int xyz = 0;
        bool f_xyz = true;
        for(auto p : mp){
            xyz ^= p.first;
            if(p.second != N/3)f_xyz = false;
        }
        if(f_xyz && xyz == 0){
            cout << "Yes" << endl;
            return 0;
        }
    }

    cout << "No" << endl;
    return 0;
}    