#include<bits/stdc++.h>
using namespace std;
void add(int,int,int);
long long u,v,len,top,n,m,ans=-1,flag=1;
struct edge{
long long u,v,len;
edge *next;
};
struct node{
edge *head;
};
edge e[50001];
node p[1501];
long long dfs(int,int);
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>u>>v>>len;
add(u,v,len);
}
dfs(1,0);
cout<<ans;
return 0;
}
void add(int u,int v,int len){
top++;
e[top].u=u;
e[top].v=v;
e[top].len=len;
e[top].next=p[u].head;
p[u].head=&e[top];
}
long long dfs(int dian,int temp){
edge *ei=p[dian].head;
while(ei!=NULL){
if(ei->v==n){
if(flag==1)
ans=temp+ei->len;
else if((temp+ei->len)>ans)
ans=temp+ei->len;
}
dfs(ei->v,temp+ei->len);
ei=ei->next;
}
return 0;
}