#include<bits/stdc++.h>
#define fast ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
#define ll long long int
#define mod 100000007
#define start int t;cin>>t;while(t--)
#define db(x) cout<<#x<<"="<<x<<"\n"
#define db2(a,b)cout<<#a<<": "<<a<<" , "<<#b<<": "<<b<< endl;
#define db3(a,b,c)cout<<#a<<": "<<a<<" , "<<#b<<": "<<b<<" , "<<#c<<": "<<c<<endl;
#define forr(i, n) for (int i = 0; i < n; i++)
#define fr(i, n) for (int i = 1; i <= n; i++)
#define en "\n"
#define vi vector<int>
#define vli vector<long long int>
#define pii pair<int,int>
#define mpp make_pair
#define pb emplace_back
#define all(x) x.begin(),x.end()
#define sortv(x) sort(x.begin(),x.end())
#define sorta(x,n) sort(x,x+n)
#define print_all(x) for(auto t:x) cout<<t<<" ";cout<<en;
#define in(x) cin>>x
#define in2(x,y) cin>>x>>y
#define in3(x,y,z) cin>>x>>y>>z
#define oo(x) cout<<x<<endl
#define oo2(x,y) cout<<x<<" "<<y<<endl
#define oo3(x,y,z) cout<<x<<" "<<y<<" "<<z<<endl
#define sz(x) x.size()
#define ff first
#define ss second
using namespace std;
ll mod_pow(ll x, int n){
    if(n == 0)      return 1;
 
    ll res = 1;
    while(n > 0){
        if(n & 1)   res = res * x % mod;
        x = x * x % mod;
        n >>= 1;
    }
 
    return res;
}
vector<ll> allDivisors(ll n) { 
    vector<ll> v;
    for (ll i=1; i<=sqrt(n); i++) 
    { 
        if (n%i == 0) 
        { 
            if (n/i == i) 
                v.pb(i);
  
            else {
                v.pb(i);
                v.pb(n/i);
            } 
        }
    }
    return v;
} 
bool isPalin(string s){
    for(int i=0;i<s.size()/2;i++){
        if(s[i]!=s[s.size()-i-1]){
            return false;
        }
    }
    return true;
}

vi z_algo(string s){
    int n=sz(s);
    int l=0,r=0;
    vi z(n);
    for(ll i=1;i<n;i++){
        if(i>r){
            l=r=i;
            while(r<n && s[r]==s[r-l]){
                r++;
            }
            z[i]=r-l;
            r--;
        }
        else{
            ll index=i-l;
            if(i+z[index]<=r) z[i]=z[index];
            else{
                l=i;
                while(r<n && s[r]==s[r-l]){
                    r++;
                }
                z[i]=r-l;
                r--;
            }
        }
    }
    return z;
}

vi z_match(string str, string pat){
    string total=pat+"$"+str;
    vi z=z_algo(total);
    vi ans;
    forr(i,z.size()){
        if(z[i]==pat.size()){
            ans.pb(i-1-pat.size());
        }
    }
    return ans;

}

vi kmp(string s) {
    int n = (int)s.length();
    vector<int> pi(n);
    for (int i = 1; i < n; i++) {
        int j = pi[i-1];
        while (j > 0 && s[i] != s[j])
            j = pi[j-1];
        if (s[i] == s[j])
            j++;
        pi[i] = j;
    }
    return pi;
}

vi kmp_match(string str, string pat){
    string total=pat+"$"+str;
    int n=sz(total);
    vi ans=kmp(total);
    vi res;
    for(int i=pat.size()+1;i<n;i++){
        if(ans[i]==pat.size()){
           res.pb(i-2*pat.size()); 
        }
    }
    return res;
}

int maxx;

bool comp(const pair<ll, ll> &a, const pair<ll, ll> &b) {
    if (a.first == b.first) {
        return a.second > b.second;
    } else {
        return a.first > b.first;
    }
}


void solve(){
   ll n;
   in(n);
   vi a(n);
   int sum=0;
   forr(i,n){
       cin>>a[i];
       sum^=a[i];
   }
   forr(i,n){
       cout<<(sum^a[i])<<" ";
   }
   return;
}
int main(){
    fast;
    //start{
        solve();  
   // }
    return 0;
}



Measured memory_bytes: 3988