#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int n,m,map[124][124];
const int inf=0x7fffffff;
void floyed()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=n;k++)
if(map[i][j]!=inf&&map[i][k]!=inf)
if(map[i][j]+map[i][k]<map[j][k])
map[j][k]=map[i][j]+map[i][k];
}
int main()
{
int a,b,v;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=1;i<=n;i++)//初始化
{
for(int j=1;j<=n;j++)
{
map[i][j]=inf;
}
}
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&v);
if(val<map[a][b]&&a!=b)
{
map[a][b]=map[b][a]=v;
}
}
floyed();
printf("%d\n",map[1][n]);
}
system("pause");
return 0;
}