#include <iostream> #include <algorithm> const int N(100009),N2(20009); using namespace std; struct event{ int a,b,w; }; event cp[N]; int fa[2*N2]={0}; bool comp(const event &x,const event &y) { return x.w>y.w; } int f(int x) { while(fa[x]!=x) x=fa[x]; return x; } int main() { int n,m,t1(0),t2(0); scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) scanf("%d%d%d",&cp[i].a,&cp[i].b,&cp[i].w); for(int i=1;i<=n;i++) fa[i]=i; sort(cp+1,cp+m+1,comp); for(int i=1;i<=m;i++) { int a=cp[i].a,b=cp[i].b; int x1=f(a),y1=f(b); if(x1==y1) { cout<<cp[i].w<<endl; return 0; } int x2=fa[a+n],y2=fa[b+n]; if(x2) fa[f(x2)]=y1; else fa[a+n]=y1; if(y2) fa[f(y2)]=x1; else fa[b+n]=x1; } cout<<0<<endl; return 0; } /************************************************************** Problem: 2298 User: admin Language: C++ Result: Accepted Time:176 ms Memory:3404 kb ****************************************************************/