# 1번째 줄 : N개의 줄
# 2번쨰 줄 : M개의 버스
# 3번째 줄 ~ M+2번째 줄 : 버스 정보 : A->B 비용 C
# M+3번째 줄 : 출발점의 도시번호(str), 도착점의 도시번호(dst)

#출력 : A->B 로 가는 최소비용 C

import sys
import heapq

input=sys.stdin.readline
INF=int(1e9)

N=int(input())
M=int(input())

graph=[[] for i in range(N+1)]
distance=[INF]*(N+1)

for _ in range(M):
    A,B,C=map(int,input().split())
    graph[A].append((B,C))

def dijkstra(start):
    q=[]
    heapq.heappush(q,(0,start))

    while q:
        dist,now=heapq.heappop(q)

        if distance[now]<dist:
            continue

        for i in graph[now]:
            cost=dist+i[1]

            if cost<distance[i[0]]:
                distance[i[0]]=cost
                heapq.heappush(q,(cost,i[0]))
sta, dst = map(int, sys.stdin.readline().split())

dijkstra(sta)

print(distance[dst])
