#include<bits/stdc++.h>
using namespace std;
const int N=5e4+5;
const int inf=0x7fffffff;
int n,m,t[N],du[N],f[N];
vector<int> e[N];
queue<int> q;
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v>>t[i];
du[u]++;
e[v].push_back(u);
}
for(int i=1;i<=n;i++){
if(!du[i]){
f[i]=t[i];
q.push(i);
}
}
while(!q.empty()){
int u=q.front();
q.pop();
for(int i=0;i<e[u].size();i++){
int v=e[u][i];
--du[v];
if(!du[v]){
q.push(v);
}
f[v]=max(f[v],f[u]+t[v]);
}
}
int ans=-inf;
for(int i=1;i<=n;i++) ans=max(ans,f[i]);
cout<<ans;
return 0;
}