#include<cstdio>
#include<iostream>
#include<vector>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int f[133333],g[133333],a[133333],w[133333],p[133333];
int main()
{
//	freopen("a.in","r",stdin);
//	freopen("a.out","w",stdout);
	int n,i,x,y,l,j,cnt=0,ans=0;
	scanf("%d",&n);
//	printf("%d\n",n);
	for(i=1;i<n;i++)
	{
		scanf("%d%d%d",&x,&y,&l);
		x++,y++;
		g[x]^=l,g[y]^=l; 
	}
	for(i=1;i<=n;i++)
	{
		if(a[g[i]]&&g[i])
			ans++;
		a[g[i]]^=1;
	}
//	printf("%d\n",ans);
	for(i=0;i<16;i++)
		if(a[i])
			p[++cnt]=i;//,printf("%d\n",i);
//	printf("%d|",cnt);
	for(i=0;i<(1<<cnt);i++)
	{
		int sum=0;
		for(j=1;j<=cnt;j++)
			if((1<<j-1)&i)
				w[i]^=p[j],sum++;
		if(i)
		f[i]=sum-1;
		if(!w[i])
		{
			for(j=i-1;j;j=(j-1)&i)
			{
				if(!w[j])
					f[i]=min(f[i],f[j]+f[i-j]);
				else
					f[i]=min(f[i],f[j]+f[i-j]+1);
			}
		}
	}
	printf("%d\n",f[(1<<cnt)-1]+ans);
	return 0;
}
