#CF1016F. 道路项目

道路项目

F. 道路项目
时间限制:2 秒
内存限制:256 兆字节

在 Berland 国有 nn 个城市。其中一些城市由双向道路连接,使得任意一对城市之间存在唯一一条简单路径(每条路最多经过一次)。每条道路有其自己的长度。城市编号为 11nn

城市 vvuu 之间的旅行时间定义为从 vvuu 的最短路径上所有道路的长度之和。

Berland 最重要的两个城市是城市 11 和城市 nn

Berland 交通部决定修建一条新的道路来减少最重要城市之间的交通压力。然而,很多人已经习惯了当前最重要的两个城市之间的旅行时间,所以新道路不应该太大改变它。

新道路只能修建在满足 vuv \ne uvvuu 之间尚未有直接道路连接的城市对 (v,u)(v, u) 之间。

他们提出了 mm 个可能的项目。每个项目仅包含新道路的长度 xx

Polycarp 是 Berland 交通部的首席分析师,他的工作是处理所有 mm 个项目。对于第 ii 个项目,他需要选择一些城市 vvuu,在它们之间修建长度为 xix_i 的新道路,使得最重要城市之间的旅行时间尽可能大

不幸的是,Polycarp 不是程序员,而且世界上没有哪个分析师能用纸笔处理完所有这些项目。

因此,他请你帮助他计算每个项目下,最重要城市之间可能的最大旅行时间。注意:对于不同的项目,vvuu 的选择可以不同。


输入格式

第一行包含两个整数 nnmm3n31053 \le n \le 3\cdot 10^51m31051 \le m \le 3\cdot 10^5)——城市数量与项目数量。

接下来 n1n-1 行,每行包含三个整数 vi,ui,wiv_i, u_i, w_i1vi,uin1 \le v_i, u_i \le n1wi1091 \le w_i \le 10^9)——第 ii 条道路的描述。保证任意两个城市之间存在唯一一条简单路径。

接下来 mm 行,每行包含一个整数 xjx_j1xj1091 \le x_j \le 10^9)——第 jj 个项目的新道路长度。


输出格式

输出 mm 行,第 jj 行包含一个整数——第 jj 个项目下最重要城市之间可能的最大旅行时间。


示例

输入

7 2
1 2 18
2 3 22
3 4 24
4 7 24
2 6 4
3 5 12
1
100

输出

83
88

注意

第一个示例中的道路网络如下:

(图片略)

可以在城市 5566 之间修建长度为 11 的道路,得到 1177 之间的旅行时间为 8383(路径 12653471 \to 2 \to 6 \to 5 \to 3 \to 4 \to 7 长度为 18+4+1+12+24+24=8318+4+1+12+24+24 = 83)。其他城市对得到的答案小于等于 8383