#include<bits/stdc++.h>
using namespace std;
int f[200005],ans=-1e6,vis[200005],tot,head[200005];
struct nod
{
int f,t,d;
}e[200005];
void add(int x,int y,int z)
{
e[++tot].f=head[x];
e[tot].t=y;
e[tot].d=z;
head[x]=tot;
}
void solve(int u)
{
if(vis[u])
return ;
vis[u]=1;
for(int v=head[u];v;v=e[v].f)
{
solve(e[v].t);
f[u]=max(f[u],f[e[v].t]+e[v].d);
}
ans=max(ans,f[u]);
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int u,v,w;
cin>>u>>v>>w;
add(u,v,w);
}
solve(1);
if(!vis[n])
cout<<-1;
else
cout<<ans;
return 0;
}