import sys input = sys.stdin.readline from heapq import heappop,heappush N,M=list(map(int,input().split())) E=[[] for i in range(N)] for i in range(M): u,v,w=list(map(int,input().split())) u-=1 v-=1 E[u].append((v,w)) E[v].append((u,w)) A=list(map(int,input().split())) B=list(map(int,input().split())) C=list(map(int,input().split())) DIS=[(1<<64)-1]*N DIS[0]=0 Q=[(0,0)] while Q: time,ind=heappop(Q) if DIS[ind]!=time: continue k=(time+A[ind]-1)//A[ind] if k==0: k=1 if k%B[ind]==0: plus=C[ind] else: plus=0 if plus==0: start=k*A[ind] for to,cost in E[ind]: if DIS[to]>start+cost: DIS[to]=start+cost heappush(Q,(DIS[to],to)) else: start=k*A[ind] for to,cost in E[ind]: if DIS[to]>start+cost+plus: DIS[to]=start+cost+plus heappush(Q,(DIS[to],to)) start=(k+1)*A[ind] for to,cost in E[ind]: if DIS[to]>start+cost: DIS[to]=start+cost heappush(Q,(DIS[to],to)) print(DIS[N-1])