#include <iostream>
#include <vector>
#include <unordered_set>
#define endl '\n'

using namespace std;

long long dist[100005];
int n;

int main() {
    cin >> n;
    n--;
    for(int i = 1; i <= n; i++) {
        int a,b; long long w; cin >> a >> b >> w;
        dist[i]=dist[i-1]^w;
    }

    unordered_set<long long> m;
    long long mask=0, mask1=0;
    for(int j = 60; j >= 0; j--) {
        m.clear();
        mask1=((1LL<<61)-1)-((1LL<<j)-1);
        for(int i = 0; i <= n; i++) m.insert(dist[i]&mask1);
        for(int i = 0; i <= n; i++) {
            if(m.count((dist[i]&mask1)^(mask|(1LL<<j)))) {
                mask|=(1LL<<j);
                break;
            }
        }
    }
    cout<<mask<<endl;
}