#include <stdio.h> long d[110]; int e[10010][3]; int n,m; int init()...{ scanf("%d%d",&n,&m); if (n+m==0) return0; int i; for (i=1;i<=n;i++) d[i]=99999999; d[1]=0; for (i=1;i<=m;i++) scanf("%d%d%d",&e[i][1],&e[i][2],&e[i][3]); return1; } int solve()...{ int i,j,yes; for (i=1;i<=n;i++)...{ yes=0; for (j=1;j<=m;j++)...{ if (d[e[j][1]]+e[j][3]<d[e[j][2]]) ...{d[e[j][2]]=d[e[j][1]]+e[j][3]; yes=1;} if (d[e[j][2]]+e[j][3]<d[e[j][1]]) ...{d[e[j][1]]=d[e[j][2]]+e[j][3]; yes=1;} } if (yes==0) break; } return0; } int answer()...{ printf("%d ",d[n]); } int main()...{ while (init())...{ solve(); answer(); } return0; }