编程题
### 问题描述
给定一棵 $n$ 个节点的树,节点的编号从 $1$ 开始,树的边为无向边,其中边权只有 $1、2、3$ 这三种。现在定义 $u→v$ 两点之间的距离 $dis(u,v)$ 为两点间简单路径上所有边权的异或和。
小蓝的体力值为 $k$ ,他从 $1$ 号节点出发,做一次旅行(必须离开 $1$ 号节点,走到某节点后停下),到达某节点 $u$ 所耗费的体力值为 $dis(1,u)$。试问:在小蓝不透支体力的前提下(旅行结束,$k \geq 0$),他可能的能够到达的节点数量有多少($1$ 号节点不算)?如果他任何一个节点都访问不了,请输出 $-1$。
### 输入格式
第 $1$ 行两个整数 $n,k$,分别表示树的节点数和小蓝的体力值。
接下来 $n-1$ 行,每行三个整数 $x,y,z$,表示点 $x$ 和点 $y$ 有一条边相连,边权为 $z$。
### 输出格式
输出共 $1$ 行,若有解,输出一个整数表示小蓝能够到达的节点数量;否则输出 $-1$。
### 样例输入
```text
7 1
1 2 1
1 3 3
1 4 2
2 5 3
3 6 2
4 7 2
```
### 样例输出
```text
3
```
### 说明
样例中,小蓝从 $1$ 号节点出发:如果到达 $2$ 号节点,则耗费 $1$ 点体力;如果到达 $3$ 号节点,则耗费 $3$ 点体力;如果到达 $4$ 号节点,则耗费 $2$ 点体力;如果到达 $5$ 号节点,则耗费 $1 \oplus 3=2$ 点体力;如果到达 $6$ 号节点,则耗费 $3 \oplus 2=1$ 点体力;如果到达 $7$ 号节点,则耗费 $2 \oplus 2=0$ 点体力。所以小蓝能到达 $1、6、7$ 号节点,总共 $3$ 个节点。
### 评测数据规模
对于所有评测数据,$1 \leq n \leq 2 \times 10^5$,$0 \leq k \leq 3$,$1 \leq x, y \leq n$,$1 \leq z \leq 3$。