N,L=gets.split.map(&:to_i) xs,ws,ts=N.times.map{gets.split.map(&:to_i)}.transpose xs.unshift(0) ws.unshift(0) ts.unshift(0) dp=Array.new(N+1,0) N.times do |i| ar=dp[i]+xs[i+1]-xs[i]-ws[i] dp[i+1]=ar+((0 <= ar%(2*ts[i+1])) && (ar%(2*ts[i+1]) <= ts[i+1]-ws[i+1] ) ? 0 : 2*ts[i+1]-ar%(2*ts[i+1]))+ws[i+1] end puts dp[N]+L-xs[N]-ws[N]