Dis
题号:NC50470
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

给出n个点的一棵树,多次询问两点之间的最短距离。
注意:边是双向的。

输入描述:

第一行为两个整数n和m。n表示点数,m表示询问次数;
下来n-1行,每行三个整数x,y,k,表示点x和点y之间存在一条边长度为k;
再接下来m行,每行两个整数x,y,表示询问点x到点y的最短距离。

输出描述:

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

输入

复制
2 2 
1 2 100 
1 2 
2 1

输出

复制
100
100
示例2

输入

复制
3 2
1 2 10
3 1 15
1 2
3 2

输出

复制
10
25

备注:

对于全部数据,