n,l=(0..2).map{gets.to_i} f=(0..n).map{{}} f[1][0]=0 (0..3).map{gets.split.map &:to_i}.transpose.sort.map{|a,b,c,d|f[a].map{|x,t|x>l||f[b][x+c]=[f[b][x+c]||1e9,t+d].min}} p f[n].values.min||-1