import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### N = ni() C = ni() V = ni() S = na() T = na() Y = na() M = na() G = [[] for i in range(N)] for i in range(V): S[i] -= 1 T[i] -= 1 G[S[i]].append((T[i], Y[i], M[i])) dist = [[float("inf")for j in range(C+1)]for i in range(N)] for i in range(C+1): dist[0][i] = 0 for i in range(N): for j in range(C+1): now = dist[i][j] for t, y, m in G[i]: nj = j + y if nj > C: continue dist[t][nj] = min(dist[t][nj], now + m) if min(dist[-1])==float("inf"): print(-1) else: print(min(dist[-1]))