#include<bits/stdc++.h>
using namespace std;
int n,m;
int u,v,w;
int vis[1510];
int f[1510][1510];
int step[1510];
vector<int>g[1510];
void bfs(int x)
{
queue<int>q;
q.push(x);
vis[x]=1;
while(!q.empty())
{
for(int i=0;i<g[q.front()].size();i++)
{
if(!vis[g[q.front()][i]])
{
step[g[q.front()][i]]=max(step[g[q.front()][i]],step[q.front()]+f[q.front()][g[q.front()][i]]);
vis[g[q.front()][i]]=1;
q.push(g[q.front()][i]);
}
}
q.pop();
}
}
int main()
{
cin>>n>>m;
while(m--)
{
cin>>u>>v>>w;
g[u].push_back(v);
f[u][v]=max(f[u][v],w);
}
bfs(1);
cout<<step[n];
return 0;
}