#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
****************************************************************/