#include<bits/stdc++.h>
#define pii pair<int,int>
#define infinity 99999999999
using namespace std;
long int n,m,u,v,w;
void dijkstra(int start, vector<pii>G[])
{
long int *dist = new long int[n+1];
priority_queue<pii,vector<pii>,greater<pii> >q;
for(int i=1; i<=n; i++)
{
dist[i]=infinity;
}
q.push(pii(0,start));
dist[start]=0;
while(!q.empty())
{
u=q.top().second;
q.pop();
for(int i=0; i<G[u].size();i++)
{
v=G[u][i].second;
w=G[u][i].first;
if(dist[u]+w<dist[v])
{
dist[v]=dist[u]+w;
q.push(pii(dist[v],v));
}
}
}
long int mx = 0;
for(int i=1; i<=n; i++)
{
mx = max(mx, dist[i]);
}
cout<<mx<<endl;
free(dist);
}
int main()
{
ios::sync_with_stdio(false);
cin>>n>>m;
vector<pii>G[n+1];
while(m--)
{
cin>>u>>v>>w;
G[u].push_back(pii(w,v));
G[v].push_back(pii(w,u));
}
int start = 1;
dijkstra(start,G);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIGluZmluaXR5IDk5OTk5OTk5OTk5CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgogbG9uZyBpbnQgbixtLHUsdix3OwoKCgoKCgp2b2lkIGRpamtzdHJhKGludCBzdGFydCwgdmVjdG9yPHBpaT5HW10pCiB7CiAgICAgbG9uZyBpbnQgKmRpc3QgPSBuZXcgbG9uZyBpbnRbbisxXTsKCiAgICAgcHJpb3JpdHlfcXVldWU8cGlpLHZlY3RvcjxwaWk+LGdyZWF0ZXI8cGlpPiA+cTsKCiAgICAgZm9yKGludCBpPTE7IGk8PW47IGkrKykKICAgICB7CiAgICAgICAgZGlzdFtpXT1pbmZpbml0eTsKICAgICB9CgogICAgIHEucHVzaChwaWkoMCxzdGFydCkpOwogICAgIGRpc3Rbc3RhcnRdPTA7CgogICAgIHdoaWxlKCFxLmVtcHR5KCkpCiAgICAgewogICAgICAgIHU9cS50b3AoKS5zZWNvbmQ7CiAgICAgICAgcS5wb3AoKTsKICAgICAgICBmb3IoaW50IGk9MDsgaTxHW3VdLnNpemUoKTtpKyspCiAgICAgICAgewogICAgICAgICAgICB2PUdbdV1baV0uc2Vjb25kOwogICAgICAgICAgICB3PUdbdV1baV0uZmlyc3Q7CiAgICAgICAgICAgIGlmKGRpc3RbdV0rdzxkaXN0W3ZdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkaXN0W3ZdPWRpc3RbdV0rdzsKICAgICAgICAgICAgICAgIHEucHVzaChwaWkoZGlzdFt2XSx2KSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgfQoKICAgIGxvbmcgaW50IG14ICA9IDA7CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKQogICAgewogICAgICAgIG14ID0gbWF4KG14LCBkaXN0W2ldKTsKICAgIH0KICAgIGNvdXQ8PG14PDxlbmRsOwogICAgZnJlZShkaXN0KTsKIH0KCgoKCgppbnQgbWFpbigpCnsKICAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICAgY2luPj5uPj5tOwogICAgIHZlY3RvcjxwaWk+R1tuKzFdOwogICAgIHdoaWxlKG0tLSkKICAgICB7CiAgICAgICAgY2luPj51Pj52Pj53OwogICAgICAgIEdbdV0ucHVzaF9iYWNrKHBpaSh3LHYpKTsKICAgICAgICBHW3ZdLnB1c2hfYmFjayhwaWkodyx1KSk7CiAgICAgfQoKICAgICBpbnQgc3RhcnQgPSAxOwogICAgIGRpamtzdHJhKHN0YXJ0LEcpOwoKICAgICByZXR1cm4gMDsKCn0K