#include<bits/stdc++.h>
using namespace std;
struct{
int begin;
int end;
int add;
}a[1500002];
int ans,step,n,m,b[100000],t;
void bfs(int x,int step){
if(x==n)ans=max(ans,step);
for(int i=1;i<=n;i++){
if(a[i].begin==x&&a[i].end!=0){
t=a[i].end,a[i].end=0;
bfs(t,step+a[i].add);
a[i].end=b[i];
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++){
int x,y,z;
cin>>x>>y>>z,a[i].begin=x;
a[i].end=y,a[i].add=z;
b[i]=a[i].end;
}
bfs(1,step);
if(ans!=0)cout<<ans<<endl;
else cout<<"-1"<<endl;
}