#P0416. 简单的送信问题

简单的送信问题

题目描述

战争时期,前线有nn个哨所,每一个哨所可能会与其他若干个哨所之间有通信联系。

信使负责在哨所间传递消息,当然,这个是要花费一定时间的(以天为单位)

指挥部设在第一个哨所。

当指挥部下达第一个命令后,指挥部就会派出若干个信使向与指挥部相连的哨所送信。

当一个哨所接到信的时候,这个哨所内的信使们也以同样的方式向其他的哨所送信,信在一个哨所内停留的时间可以忽略不计

直至nn个哨所全部接收到命令后,送信才算是成功。

因为准备充足,所以每个哨所内安排了足够的信使(如果一个哨所与其他kk个哨所所有通信联系的话,这个哨所内至少会配备kk个信使)。

现在总指挥部请你编写一个程序,计算出完成整个送信过程最短需要多少时间。

样例输入

第一行有两个整数nnmm,中间用一个空格隔开,分别代表有nn个哨所和mm条通信线路。

22m+1m + 1行:每行三个整数i,j,ki, j, k,中间用一个空格隔开,表示第ii个和第jj个哨所之间存在双向通信线路,且这条线路要花费kk天。

样例输出

一个整数代表完成整个送信过程的最短时间。

如果不是所有的哨所都可以收到信息,那么输出1-1

样例

样例一

4 4
1 2 4
2 3 7
2 4 1
3 4 6
11

数据范围

1n1001 \le n \le 100

1m2001 \le m \le 200

1k10001 \le k \le 1000