N, C, M = int(input()), int(input()), int(input()) U = list(map(int, input().split())) V = list(map(int, input().split())) Y = list(map(int, input().split())) T = list(map(int, input().split())) G = [[] for _ in range(N)] for i in range(M): u, v = U[i]-1, V[i]-1 G[u].append((v, Y[i], T[i])) inf = 10 ** 18 dp = [[inf] * (C + 1) for _ in range(N)] dp[0][0] = 0 for u in range(N-1): for v, y, t in G[u]: for c in range(C+1): if c + y <= C: dp[v][c + y] = min(dp[v][c + y], dp[u][c] + t) ans = min(dp[-1]) print(ans if ans < inf else -1)