#include using namespace std; vector>> G(102,vector>(0)); vector D(101234); int INF=10000000; int N; vector T(102); void ijk(int s){ for(int i=0;i<(int)(D.size());i++){ D[i]=INF; } D[s]=0; priority_queue,vector>,greater>> Q; Q.push(make_pair(0,s)); int v,x,y,a,b; pair p; while(!Q.empty()){ p=Q.top(); Q.pop(); v=p.second; x=v/N; y=v-x*N; if(D[v]D[v]+T[a]+b){ D[min(1001,T[a]+x)*N+a]=D[v]+T[a]+b; Q.push(make_pair(D[min(1001,T[a]+x)*N+a],min(1001,T[a]+x)*N+a)); } } } } int main(){ int M; cin>>N>>M; int a,b,c; for(int i=0;i>a>>b>>c; a--; b--; G[a].push_back(make_pair(b,c)); G[b].push_back(make_pair(a,c)); }for(int i=0;i>T[i]; } ijk(T[0]*N); int ANS=INF; for(int i=0;i<=1000;i++){ ANS=min(ANS,D[(i+1)*N-1]+T[0]); } cout<