#include <bits/stdc++.h>
#define int long long
#define pb push_back
using namespace std;
const int N=50005;
int n,m,dfn[N],x[105],book[N],ans;
vector<int>a[N],l[N];
void add(int xx)
{
for(int i=63;i>=0;i--)
if((xx>>i)&1)
{
if(!x[i])
{
x[i]=xx;
return;
}
xx^=x[i];
}
}
void dfs(int u,int fa,int sum)
{
dfn[u]=sum,book[u]=1;
for(int i=0;i<a[u].size();i++)
{
if(a[u][i]==fa)continue;
if(!book[a[u][i]])
dfs(a[u][i],u,sum^l[u][i]);
else
add(sum^l[u][i]^dfn[a[u][i]]);
}
}
signed main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
a[u].pb(v),l[u].pb(w);
a[v].pb(u),l[v].pb(w);
}
dfs(1,0,0);
ans=dfn[n];
for(int i=63;i>=0;i--)
if(ans^x[i]>ans)
ans^=x[i];
printf("%lld",ans);
return 0;
}