n, d = gets.chomp.split(" ").map(&:to_i) #片道d円東京から大阪までの賃金 #t,kは東京と大阪でもらえる賃金である dp = Array.new(n+1).map{Array.new(2,0)} #一つ前の遷移を見てあげる。 #例えば、今回の仕事の前の段階で東京で仕事を行った。 #もしくは、大阪で仕事を行った。 #以上2つの最高の持っている金額を示す。 dp[0][1]= -d n.times do |i| t, k = gets.chomp.split(" ").map(&:to_i) dp[i+1][0] = [dp[i][0]+t,dp[i][1]-d+t].max dp[i+1][1] = [dp[i][0]-d+k,dp[i][1]+k].max end puts dp.pop.max