#include <iostream>
#include <stdio.h>
using namespace std;
int map[1005][1005]={0};
int main(){
int T,N,i,j,begin,end,value;
while(scanf("%d %d",&T,&N)!=EOF){
int d[1005],v[1005]={0},num=1;
d[1]=0;
for(i=2;i<1005;i++){
d[i]=1000001;
}
for(i=1;i<=T;i++){
scanf("%d %d %d",&begin,&end,&value);
if(!map[begin][end]){
map[begin][end]=value;
map[end][begin]=value;
}
if(value<map[begin][end]){
map[begin][end]=value;
map[end][begin]=value;
}
}
for(i=1;i<N;i++){
for(j=2;j<=N;j++){
if(!v[i]&&map[i][j]&&(map[i][j]+d[i])<d[j]&&i!=j&&!v[j]){
d[j]=map[i][j]+d[i];
}
}
v[i]=1;
}
printf("%d\n",d[N]);
}
return 0;
}
未通过oj