#E1166. 【基础】树上的距离(distance)

【基础】树上的距离(distance)

说明

给出n个点的一棵树,多次询问两个结点之间的最短距离。(边是双向的,也就是读入的结点没有父子之分)

两个结点之间的距离的定义是,两个结点之间的唯一接单路径边长的和。

输入格式

测试数据第一行为两个整数 N 和 M(1 < n≤10000, 0 < m≤20000)。 N表示点数,M表示询问次数。

下来 n-1行,每行三个整数 x y k,表示点x和点y之间存在一条边长度为k( 0 < k≤100)。

再接下来m行,每行两个整数 x y,表示询问点x到点y的最短距离。

输出格式

输出m行。对于每次询问,输出一行。

样例

2 2
1 2 100
1 2
2 1
100
100

提示

【样例输入2

3 2

1 2 10

3 1 15

1 2

3 2 


【样例输出2

10

25