#include<bits/stdc++.h> using namespace std; const int inf=1000000000; int n,g[10][10]; void floyd(){ int i,j,k; for(k=0;k<n;k++) for(i=0;i<n;i++) for(j=0;j<n;j++) if(g[i][k]+g[k][j]<g[i][j]) g[i][j]=g[i][k]+g[k][j]; } int main(){ int m,a,b,l,i,j; while(scanf("%d%d",&n,&m)!=EOF) { for(i=0;i<n;i++) for(j=0;j<n;j++) g[i][j]=inf; while(m--) { scanf("%d%d%d",&a,&b,&l); g[a-1][b-1]=g[b-1][a-1]=l; } floyd(); scanf("%d%d",&a,&b); if(g[a-1][b-1]==inf) puts("No path"); else printf("%d\n",g[a-1][b-1]); } return 0; } //hacknet /************************************************************** Problem: 2044 User: liyunshuo Language: C++ Result: Accepted Time:21 ms Memory:2076 kb ****************************************************************/