「Wdsr-1」仓库建设

题目背景

有一天,人间之里出现了饥荒。

题目描述

因为幻想乡倡导“幻想乡命运共同体”意识,河童们决定帮助人类修建一些粮仓防止饥荒再次发生。 人间之里有 $n$ 座城市和 $m$ 条双向道路,第 $i$ 条道路连接 $u_i,v_i$ 两座城市,长度为 $w_i$ 个单位。 由于每座城市的科技水平不同,从不同城市出发的运粮车的储油量不同。第 $i$ 座城市的运粮车的储油量只能支持运粮车行驶 $x_i$ 个单位。当然,城市与城市之间是友好的,无论到达哪个城市,热心的当地民众都会给运粮车**加满油**。 河童科技高度发达,所以仓库容纳的粮食可以视作无限。只有粮仓能发出运粮车。 现在要选择一些城市建设仓库,使得每一个城市都可以从粮仓中得到粮食。为了节约资源,河童希望仓库的数量最小。 但妖怪有时会占据一个城市,所以需要算出在任意一个城市不能建设粮仓时需要的最小粮仓数。

输入输出格式

输入格式


第一行两个整数 $n,m$,意义如题面所述。 接下来 $m$ 行每行 3 个整数 $u_i,v_i,w_i$,意义如题面所述。 接下来一行 $n$ 个整数 $x_i$,意义如题面所述。

输出格式


输出一行 $n+1$ 个整数。 第一个整数表示最少需要多少粮仓;接下来 $n$ 个整数,第 $i$ 个整数表示 $i$ 号城市不能建粮仓所需的最小的粮仓数。 **如果第 $i$ 个城市不能建粮仓时,其他城市建粮仓不能到达这个城市,则输出**` -1`。

输入输出样例

输入样例 #1

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

输出样例 #1

1 1 1 -1 1

说明

#### 样例解释 ![](https://cdn.luogu.com.cn/upload/image_hosting/jg6fg91l.png) 这是样例画出来的图,显然在 3 号城市建立粮仓就可以解决问题,当 3 号城市不能建粮仓时,其他的城市无论怎么建粮仓,粮食也运不到 3 号城市,输出 ```-1```。 --- #### 数据范围 对于 $25\%$ 的数据,保证 $1\le n,m\le 10 ^ 3$。 对于另外 $25\%$ 的数据,保证 $m=n-1$。 对于 $100\%$ 的数据,保证 $1\le n,m \le 3\times 10^5,1\le u_i,v_i\le n,1\le w_i,x_i\le 10^6$,保证图联通。