#include #include #include #include using namespace std; int N,M; vector >G[100]; int T[100]; int dist[100][1002]; main() { cin>>N>>M; 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]; for(int j=0;j<=1001;j++)dist[i][j]=1e9; } dist[0][0]=0; priority_queue > >P; P.push(make_pair(0,make_pair(0,0))); while(!P.empty()) { int u=P.top().second.first; int t=P.top().second.second; int cost=-P.top().first; P.pop(); if(dist[u][t]=1001)nt=1001; for(paire:G[u]) { int v=e.first; int nxt=cost+e.second/nt+T[u]; if(dist[v][nt]>nxt) { dist[v][nt]=nxt; P.push(make_pair(-nxt,make_pair(v,nt))); } } } int ans=1e9; for(int j=0;j<=1001;j++)ans=min(ans,dist[N-1][j]); cout<