#include<bits/stdc++.h>
using namespace std;
int n,m;
struct st{
int c,step;
};
vector<st>sum[1505];
int rd[1505],dis[1505];
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int u,v,w;
cin>>u>>v>>w;
sum[u].push_back((st){v,w});
rd[v]++;
}
for(int i=2;i<n;i++){
dis[i]=INT_MIN;
}
dis[1]=0;
queue<int>q;
q.push(1);
for(int i=2;i<=n;i++){
if(rd[i]==0){
q.push(i);
}
}
while(q.empty()==0){
int now=q.front();
q.pop();
for(int i=0;i<sum[now].size();i++){
int op=sum[now][i].c;
dis[op]=max(dis[op],dis[now]+sum[now][i].step);
rd[op]--;
if(rd[op]==0){
q.push(op);
}
}
}
cout<<dis[n]<<endl;
return 0;
}