You are given a tree with N vertices. The vertices are numbered 0 through N−1, and the edges are numbered 1 through N−1. Edge i connects vertex x_i and y_i, and has a value a_i. You can perform the following operation any number of times: choose a simple path and a non-negative integer x, then for each edge e that belongs to the path, change a_e by executing a_e:=a_e⊕x (⊕ denotes XOR).
Your objective is to have a_e=0 for all edges e. Find the minimum number of operations required to achieve it.
Input is given in the following format:
N
x_1 y_1 a_1
x_2 y_2 a_2
…
x_N−1 y_N−1 a_N−1
Find the minimum number of operations required to achieve the objective.
2≤N≤105, 0≤x_i,y_i≤N−1, 0≤a_i≤15. The given graph is a tree, all input values are integers.
In Sample 1, the objective can be achieved in three operations, as follows: first, choose the path connecting Vertex 1,2, and x=1, then, choose the path connecting Vertex 2,3, and x=2; lastly, choose the path connecting Vertex 0,4, and x=4.