传送门
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

公元2200年科学家发明了点对点传送门,随后基建狂魔发挥了优良传统,在城市之间进行了大规模建设。
现在你接到了一个任务,上级给你发了一份资料,这份资料是XX地区的传送门建设规划资料,共M条。
领导要求你完成这些任务,使得这个地区的N座城市可以互相传送,你比较喜欢摸鱼,于是你想知道完成任务的最短时间。如果无法完成任务,则输出-1。
注意:A市与B可以利用C中转,可以算互相传送。只要达到N座城市可以互相传送的目的就可以,所以规划资料不一定全部建设。

输入描述:

第一行有两个整数N,M
接下来M行 每行三个整数 A,B,T 代表了A与B市T时间完成了一对传送门建设



输出描述:

请输出完成任务的最短时间。如果无法完成任务,则输出-1。
示例1

输入

复制
5 6
1 2 10
4 5  9
2 3  5
3 1 11
3 4  7
3 5 20

输出

复制
10

说明

2与3在时间5完成建设
3与4在时间7完成建设
4与5在时间9完成建设
1与2在时间10完成建设
1-2-3-4-5 五座城市连接完成

备注:

对于30%
对于100%