#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;
vector<int>a[100001],b[100001];
queue<int>bfs;
int dis[100001];
int main(){
memset(dis,127,sizeof(dis));
dis[1]=0;
int n,m;
cin>>n>>m;
int u,v,c;
for(int i=1;i<=m;i++){
cin>>u>>v>>c;
a[u].push_back(v);
b[u].push_back(c);
}
bfs.push(1);
while(!bfs.empty()){
int city=bfs.front();
bfs.pop();
int num=a[city].size();
for(int i=0;i<num;i++){
int next=a[city][i];
int next_c=b[city][i];
if(dis[next]>dis[city]+next_c){
dis[next]=dis[city]+next_c;
bfs.push(next);
}
}
}
cout<<dis[n];
return 0;
}