#include <bits/stdc++.h>
using namespace std;
#define v first
#define w second
#define mk make_pair
#define pi pair<int,int>
#define pb push_back
const int N=1e6+5;
int n,ans,s[N];
int cnt,t[N][2];
vector<pi> g[N];
void dfs(int u,int ft) {
for(pi i:g[u])
if(i.v!=ft)
s[i.v]=s[u]^i.w,
dfs(i.v,u);
}
void insert(int u,int v) {
for(int i=(1<<30);i;i>>=1) {
bool j=v&i;
if(!t[u][j]) t[u][j]=++cnt;
u=t[u][j];
}
}
int find(int u,int v) {
int res=0;
for(int i=(1<<30);i;i>>=1){
bool j=v&i;
if(t[u][!j]) res+=i,u=t[u][!j];
else u=t[u][j];
}
return res;
}
signed main() {
cin>>n;
for(int i=1;i<n;++i) {
int u,v,w;
cin>>u>>v>>w;
g[u].pb(mk(v,w));
g[v].pb(mk(u,w));
}
dfs(1,0);
for(int i=1;i<=n;++i) insert(1,s[i]);
for(int i=1;i<=n;++i) ans=max(ans,find(1,s[i]));
cout<<ans;
return 0;
}