inf = 10**10 def get_paths(n,cost,time): if n == N-1: return time res = inf for i in xrange(n+1,N): if cost + G[n][i][0] > C: continue res = min(res,get_paths(i,cost+G[n][i][0],time+G[n][i][1])) return res N,C,V = [int(raw_input()) for i in range(3)] S,T,Y,M = [map(int,raw_input().split()) for i in range(4)] G = [[[inf,inf] for i in xrange(N)] for j in xrange(N)] for i in xrange(V): G[S[i]-1][T[i]-1] = [Y[i],M[i]] ans = get_paths(0,0,0) print ans if ans < inf else -1