#include<bits/stdc++.h>
using namespace std;
struct Node{
int to,w,next;//to儿子,w权值,next哥哥
}edge[1000];
int n,m,t,u,w,v,s,e,ans=INT_MAX,f=0,head[1005],vis[1000];//n节点,m行,u父亲,v孩子,t序号 \
void add(int u,int w,int v){
t++;
edge[t].to=v;
edge[t].w=w;
edge[t].next=head[u];
head[u]=t;
}
void dfs(int x,int w){
if(x==e){
ans=min(ans,w);
f=1;
return;
}else{
for(int i=head[x].next,i!=0,i=edge[i].next){
if(vis[edge[i].to]!=1){
vis[edge[i].to]=1;
dfs(vis[edge[i].to],w+edge[i].w);
vis[edge[i].to]=0;
}
}
}
}
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>u>>w>>v;
add(u,w,v);
add(v,w,u);
}
cin>>s>>e;
dfs(s,0);
if(f==0) cout<<ans;
else cout<<'No path';
return 0;
}
/**************************************************************
Problem: 2044
User: admin
Language: C++
Result: Compile Error
****************************************************************/