#include<bits/stdc++.h>
using namespace std;
struct Node{
int to,w,next;
}edge[100];
int n,m,t,head[1000],u,v,w,start,end,vis[1000],ans=INT_MAX;//head记录的是每个老爸刚刚生的儿子编号
void add(int u,int v,int w){
t++;
edge[t].to=v;
edge[t].w=w;
edge[t].next=head[u];
head[u]=t;
}
void dfs(int x,int w){
//cout<<x<<" ";
if(x==end){
ans=min(ans,w);
//cout<<endl;
return;
}
for(int i=head[x];i!=0;i=edge[i].next){
if(vis[edge[i].to]==0){
vis[edge[i].to]=1;
dfs(edge[i].to,w+edge[i].w);
vis[edge[i].to]=0;
}
}
}
int main(){
cin>>n>>m;
while(m--){
cin>>u>>v>>w;//u代表父亲 V代表儿子
add(u,v,w);
add(v,u,w);
}
cin>>start>>end;
// for(int i=1;i<=n;i++) cout<<head[i]<<" ";
// cout<<endl;
// for(int i=1;i<=t;i++){
// cout<<i<<" "<<edge[i].to<<" "<<edge[i].w<<" "<<edge[i].next<<endl;
// }
vis[start]=1;
dfs(start,0);
cout<<ans;
//7 6
//1 2
//1 3
//2 4
//2 5
//3 6
//4 7
}
/**************************************************************
Problem: 2044
User: admin
Language: C++
Result: Compile Error
****************************************************************/