#include<bits/stdc++.h>
#define maxn 1600
using namespace std;
int n,m,r[maxn][maxn],f[maxn],u,v,w,in[maxn],flag,del[maxn];
vector<int> a[maxn];
queue<int> q;
void dele(int p){
for (int i=0;i<a[p].size();i++){
in[a[p][i]]--;
if (in[a[p][i]]==0) dele(a[p][i]);
}
}
int main(){
scanf("%d%d",&n,&m);
for (int i=1;i<=m;i++){
scanf("%d%d%d",&u,&v,&w);
if (w>r[u][v]||r[u][v]==0) r[u][v]=w;
in[v]++;
a[u].push_back(v);
}
for (int i=2;i<=n;i++) if(in[i]==0){dele(i);}
q.push(1);
while(!q.empty()){
int tem=q.front();
q.pop();
for (int i=0;i<a[tem].size();i++){
in[a[tem][i]]--;
if (in[a[tem][i]]==0) q.push(a[tem][i]);
f[a[tem][i]]=max(f[a[tem][i]],f[tem]+r[tem][a[tem][i]]);
}
}
if (f[n]==0) cout<<-1;
else printf("%d",f[n]);
}