inf = 10**10 def get_paths(n,path,cost): if n == N-1: return [path] res = [] for i in xrange(n+1,N): if cost + G[n][i][0] > C: continue res += get_paths(i,path+[i],cost+G[n][i][0]) 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]] paths = get_paths(0,[0],0) ans = inf if len(paths) > 0 else -1 for path in paths: ans = min(ans, sum(G[path[i]][path[i+1]][1] for i in xrange(len(path)-1))) print ans