#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
#include<string.h>
int minimum(int a,int b)
{
if(a<b)return a;
return b;
}
int put(int mat[][100],int n,int start,int end,float posecena[100])
{
	int A;
	int min=INT_MAX;
	if(start==end)return 0;
	posecena[start]=1;
	for(int i=0;i<n;i++)
	{
		if(mat[start][i]!=INT_MAX && !posecena[i])
		{
			A=put(mat,n,i,end,posecena);
			if(A<INT_MAX)min=minimum(min,mat[start][i]+A);
		}
	}
  
	posecena[start]=0;
	return min;
}
int main()
{
	int n,m,i,j,start,end,a,b,t,min;
	scanf("%d%d",&n,&m);
	int mat[100][100];
	float p[100];
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
		mat[i][j]=INT_MAX;
		}	
	}
	for(i=0;i<m;i++)
	{
		scanf("%d%d%d",&a,&b,&t);
		mat[a-1][b-1]=t;	
	}
	scanf("%d%d",&start,&end);
	min=put(mat,n,start,end,p);
	printf("%d",min);
}