INF=10**10 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([T[i]-1,Y[i],M[i]]) from heapq import heappop, heappush, heapify heap=[(0,C,0)] heapify(heap) dp=[[INF for _ in range(C+1)] for _ in range(N)] dp[0][C]=0 while heap: mm,cc,u = heappop(heap) if dp[u][cc]mm+m: dp[v][cc-y]=mm+m heappush(heap,(dp[v][cc-y],cc-y,v)) print(-1 if min(dp[N-1])==INF else min(dp[N-1]))