#include <bits/stdc++.h>
using namespace std;
long long n,m;
long long flag[100010];
long long isf[100010];
vector<pair<long long,long long> >mp[100010];
long long dfs(long long x,long long sum){
if(x==n){
return sum;
}
long long ans=(long long)(-1e18);
for(auto i : mp[x]){
if(isf[i.first]==0){
isf[i.first]=1;
flag[i.first]=dfs(i.first,sum+i.second);
}
if(flag[i.first]!=(long long)(-1e18)){
ans=max(ans,flag[i.first]);
}
}
return ans;
}
int main(){
cin>>n>>m;
for(long long i=1;i<=m;i++){
long long u,v,w;
cin>>u>>v>>w;
mp[u].push_back(pair<int,int>(v,w));
}
long long ans=dfs(1,0);
if(ans==(long long)(-1e18)){
cout<<-1<<endl;
}
else{
cout<<ans<<endl;
}
}