import heapq N = int(input()) C = int(input()) V = int(input()) S = list(map(int,input().split())) T = list(map(int,input().split())) Y = list(map(int,input().split())) M = list(map(int,input().split())) G=[[] for _ in range(N)] for i in range(V): G[S[i]-1].append((M[i],Y[i],T[i]-1)) hq=[(0,0,0,[False]*N)] heapq.heapify(hq) while(hq): t,c,v,A=heapq.heappop(hq) vis=A.copy() vis[v]=True if v==N-1: print(t) exit() for m,y,u in G[v]: if c+y<=C and vis[u]==0: heapq.heappush(hq,(t+m,c+y,u,vis)) print(-1)