2431 - 火烧连营
描述

刘备举国兵力去攻打东吴,帮关羽报仇,陆逊制定了火攻来回击刘备。

刘备的兵营分布在 N个区域,由于驻扎在都是在草木的地区,有些兵营着火之后,会迅速蔓延到附近兵营,这里给出 M 组兵营之间的关系。第i组关系表示兵营U_i和兵营V_i,火蔓延过去的时间是W_i


起初(第 0时刻),陆逊派人在 K 个兵营 A_1,A_2,A_3,⋯ ,A_k上的人放了火。再接下来的 D时刻中,火将以以下方式传播:

 - 在第 i−1时刻结束时着火的兵营,在第 i时刻结束时仍然着火。

 - 在第 i时刻,所有与前 i−1时刻已经着火的最短距离不超过 X_i 的兵营会着火。

对于每个 i(1≤i≤n),求第 i个兵营着火的时间,若 D时刻内一直未着火,则输出 `-1`。


输入
输出

i行,应输出第i个兵营着火的时间。

样例

输入

4 4
1 2 2
2 3 1
2 4 3
3 4 2
1
1
2
3 3

输出

0
1
1
2

输入

7 7
1 2 2
2 3 3
3 4 1
4 5 1
5 6 3
3 7 1
4 7 1
2
1 6
2
2 3

输出

0
1
2
-1
2
0
-1

输入

5 1
1 2 5
2
1 3
3
3 7 5

输出

0
2
0
-1
-1
提示

-   1 \leq N\leq 3\times 10^5

-   0 \leq M\leq 3\times 10^5

-   1 \leq U_i < V_i\leq N

-   所有 (U_i,V_i) 都不同.

-   1\leq W_i\leq 10^9

-   1 \leq K\leq N

-   1\leq A_1

-   1 \leq D\leq 3\times 10^5

-   1\leq X_i\leq 10^9

样例1说明:


感染传播方式如下。

-在白天 0的晚上,住在房间 1的人受到感染。

-房间 1和房间 2,3,4 之间的距离分别为 2,3,5

因此,从 X_1=3 开始,居住在 23 房间的人在白天 1 的晚上被新感染。

房间 34 之间的距离为 2

因此,由于 X_2=3,住在房间 4 的人也会在白天 2 的晚上受到感染。因此,居住在 1,2,3,4 房间的人分别在 0,1,1,2 天被新感染


题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 1
通过次数 1