N = int(input()) C = int(input()) V = [[] for i in range(N)] _ = input() from collections import deque for s, t, y, m in zip(map(int, input().split()), map(int, input().split()), map(int, input().split()), map(int, input().split())): V[s - 1] += [[t - 1, y, m]] que = deque([0, 0]) dp = [[10 ** 9] * (C + 1) for i in range(N)] dp[0][0] = 0 while que: q1, q2 = que.popleft(), que.popleft() q3 = dp[q1][q2] for v, y, m in V[q1]: if q2 + y <= C and dp[v][q2 + y] > q3 + m: dp[v][q2 + y] = q3 + m que.extend([v, q2 + y]) ans = min(dp[-1]) if ans == 10 ** 9: print(-1) else: print(ans)