import heapq n,m=map(int,input().split()) g=[[] for _ in range(n)] for _ in range(m): a,b,c=map(int,input().split()) g[a-1].append((b-1,c)) g[b-1].append((a-1,c)) t=list(map(int,input().split())) time=[[float('inf')]*1001 for _ in range(n)] time[0][0]=0 q=[(0,0,0)] while q: now_time,now_place,eat_time=heapq.heappop(q) if time[now_place][eat_time]now_time+to_dst//eat_time: time[to_place][eat_time]=now_time+to_dst//eat_time heapq.heappush(q,(now_time+to_dst//eat_time,to_place,eat_time)) print(min(time[n-1]))