#include <bits/stdc++.h>
using namespace std;
const int N=1509;
int n,m,a[N][N],u,v,w,ind[N],dp[N];
queue<int> q;
void toposort(){
while(q.size()){
int s=q.front();q.pop();
for(int i=1;i<=n;i++){
if(a[s][i]==0) continue;
ind[i]--;
dp[i]=max(dp[i],dp[s]+a[s][i]);
if(ind[i]==0) q.push(i);
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>u>>v>>w;
ind[v]++;
a[u][v]=max(a[u][v],w);
}
for(int i=1;i<=n;i++){
if(ind[i]==0){
q.push(i);
dp[i]=0;
}
}
toposort();
if(dp[n]==0) cout<<-1;
else cout<<dp[n];
return 0;
}