#include <bits/stdc++.h>
using namespace std;
int a[300][300];
#define MAX 100000000
int main()
{
int c,f,x,y,p;
cin>>c>>f;
for(int i=1;i<=c;i++)
{
for(int j=1;j<=c;j++)
{
a[i][j]=MAX;
}
}
for(int i=0;i<f;i++)
{
cin>>x>>y>>p;
a[x][y]=p;
}
for(int i=1;i<=c;i++)
{
a[i][i]=0;
}
for(int k=1;k<=c;k++)
{
for(int i=1;i<=c;i++)
{
for(int j=1;j<=c;j++)
{
if(a[i][j]>a[i][k]+a[k][j]){
//cout<<"helo"<<endl;
a[i][j]=a[i][k]+a[k][j];
//cout<<a[i][j]<<endl;
}
}
}
}
int max=-1;
for(int i=1;i<=c;i++)
{
for(int j=1;j<=c;j++)
{
if(max<a[i][j]&&a[i][j]!=MAX)
max=a[i][j];
}
///cout<<endl;
}
cout<<max<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBhWzMwMF1bMzAwXTsKI2RlZmluZSBNQVggMTAwMDAwMDAwCmludCBtYWluKCkKewoJaW50IGMsZix4LHkscDsKCWNpbj4+Yz4+ZjsKCWZvcihpbnQgaT0xO2k8PWM7aSsrKQoJewoJCWZvcihpbnQgaj0xO2o8PWM7aisrKQoJCXsKCQkJYVtpXVtqXT1NQVg7CgkJfQoJfQoJZm9yKGludCBpPTA7aTxmO2krKykKCXsKCQljaW4+Png+Pnk+PnA7CgkJYVt4XVt5XT1wOwoJfQoJZm9yKGludCBpPTE7aTw9YztpKyspCgl7CgkJYVtpXVtpXT0wOwoJfQoJCglmb3IoaW50IGs9MTtrPD1jO2srKykKCXsKCQlmb3IoaW50IGk9MTtpPD1jO2krKykKCQl7CgkJCWZvcihpbnQgaj0xO2o8PWM7aisrKQoJCQl7CgkJCQlpZihhW2ldW2pdPmFbaV1ba10rYVtrXVtqXSl7CgkJCQkJLy9jb3V0PDwiaGVsbyI8PGVuZGw7CiAKCQkJCQlhW2ldW2pdPWFbaV1ba10rYVtrXVtqXTsKCQkJCQkvL2NvdXQ8PGFbaV1bal08PGVuZGw7CgkJCQl9CgkJCX0KCQl9Cgl9CglpbnQgbWF4PS0xOwoJZm9yKGludCBpPTE7aTw9YztpKyspCgl7CgkJZm9yKGludCBqPTE7ajw9YztqKyspCgkJewoJCQlpZihtYXg8YVtpXVtqXSYmYVtpXVtqXSE9TUFYKQoJCQkJbWF4PWFbaV1bal07CgkJfQoJCS8vL2NvdXQ8PGVuZGw7Cgl9Cgljb3V0PDxtYXg8PGVuZGw7CglyZXR1cm4gMDsKfQ==