#include <iostream>
#include <vector>
#include <stdio.h>
using namespace std;
int n,m,sum,x1,y1,z,res=-0x3f3f3f;
struct egde{
int x,y;
egde(int _x,int _y){
x=_x,y=_y;
}
};
bool f,f2;
vector<egde >h[100001];
void dfs1(int x){
if(x==n){
res=max(sum,res);
f=1;
return;
}
for(int i=0;i<h[x].size();i++){
sum+=h[x][i].y;
dfs1(h[x][i].x);
sum-=h[x][i].y;
}
return;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
scanf("%d%d%d",&x1,&y1,&z);
h[x1].push_back(egde(y1,z));
}
dfs1(1);
if(f){
printf("%d",res);
}
else printf("-1");
return 0;
}