N,C,V=3.times.map{gets.to_i} # DP[現在地点][コスト]=最短時間 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[t][j],DP[s][j-y]+m].min } } ans=DP[N].min puts ans==10**9+7 ? -1:ans