图的分割
题号:NC244459
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Lv学长最近沉迷于游戏《It Takes Two》,可惜他找不到女朋友,只能左手和右手一起玩。他对此非常不满,所以也想拆散别人。这不,现在他已经走火入魔了,连看到一个图都想把它拆成两部分。
现有无向图G,有n个节点,m条边,不存在重边或自环,所有点联通。
Lv学长想将原有图G拆分为两个联通的子图G1和G2。
具体来说,删除一些边,使得图G变为两个联通的子图G1和G2,G1和G2间没有边相连。需要保证删除边的边权最大值最小,在此基础上尽可能少地删除边。
请你输出被删除的边的边权中的最大值最小是多少。

输入描述:

第一行2个正整数,n,m。
接下来m行,每行三个正整数x,y和v。表示x和y之间有一条权值为v的边相连。

输出描述:

一行一个整数,表示删除边的边权最大值最小是多少。
示例1

输入

复制
4 4
1 2 5
1 4 2
2 3 1
3 4 6

输出

复制
2

说明

需要删除1 4 2和2 3 1两条边,节点1,2为子图G1,节点3,4为子图G2,删除最大边权为2。 输入较大,建议使用较快的输入方式。

备注:

1≤n,m≤10^6
0≤边权≤10^8