N,C,V=3.times.map{gets.to_i} dp=Array.new(N+1){Array.new(C+1){10**9+7}} dp[1][0]=0 4.times.map{gets.split.map(&:to_i)}.transpose.sort.map{|s,t,y,m| y.upto(C){|j| dp[t][j]=[dp[s][y-j]+m,dp[t][j]].min} } ans=dp[N].min ans=-1 if ans==10**9+7 p ans