编程题
### 问题描述
笨怂因为总是宅(yuan)在(shen)家(qi)里(dong)已经胖成球了!
P 哥哥决定带笨怂去爬山锻炼身体。P 哥哥在做攻略的时候发现这座山上一共有 $N$ 个景点,其中有一些景点之间是有路可以直接到达的。每个景点到其他任何一个景点都只有一条路线,可能需要经过其他几个景点。
笨怂已经胖成球了,他走几步就会气喘吁吁。所以当他走不动的时候他就会停下来休息。当他到达每一个景点以后他也会为了更好的参观停下来。
P 哥哥的目的可是督促笨怂减肥,所以 P 哥哥当然不希望笨怂停下来太多次,请你告诉 P 哥哥选择每条路线笨怂最少会停下来多少次(参观景点也算在停下来的次数中)。
### 输入描述
第一行输入两个数字 $N$ 和 $Q$ ,分别表示景点数量和山中的路线数量。景点用 $1$ 到 $N$ 之间的整数表示。
接下来输入 $N-1$ 行描述景点之间的道路。每行包括三个数字 $U,V,D$ 。表示 $U$ 景点和 $V$ 景点之间有一条长度是 $D$ 的道路。
接下来输入 $Q$ 行每行输入三个数字 $S,F,T$ 。$S$ 和 $F$ 分别是山路的起点和终点( $S \neq F$ ),想偷懒的笨怂会选择 $S$ 到 $F$ 之间的最适合自己的路线去走。 $T$ 是笨怂在该路线上不休息一口气可以走的最大路径长度。注意:起点和终点都是景点,所以笨怂都会停下来。
数据保证: $1 \leq N,Q \leq 10^5,1 \leq U,V \leq N,1 \leq D \leq 2 \times 10^4,1 \leq S,F \leq N,1 \leq T \leq 2 \times 10^4$ 。
### 输出描述
输出 $Q$ 行,每行输出一个数字表示笨怂从对应起点到对应终点最少的停下来的次数。
### 样例输入
```
7 5
1 2 1
2 3 2
2 4 3
4 5 4
4 6 5
4 7 6
3 7 2
2 6 1
5 7 3
1 4 1
3 7 1
```
### 样例输出
```
7
9
5
5
12
```