from heapq import heappush, heappop n,m = map(int,input().split()) e = [[] for i in range(n)] for i in range(m): a,b,c = map(int,input().split()) a -= 1 b -= 1 e[a].append((b,c)) e[b].append((a,c)) T = list(map(int,input().split())) inf = 10**10 dis = [inf]*n h = [(0,0,0)] while h: d,p,now = heappop(h) p *= -1 if dis[now] <= d: continue dis[now] = d p += T[now] for nex,c in e[now]: if dis[nex] > dis[now]+T[now]+c//p: heappush(h, (dis[now]+T[now]+c//p,-p,nex)) print(dis[-1])