n,d=gets.split.map(&:to_i) earns=n.times.map{gets.split.map(&:to_i)} dp=[0,-d] 0.upto(n-1){|i| t,k=earns[i] _dp=[[dp[0]+t,dp[1]-d+t].max,[dp[0]-d+k,dp[1]+k].max] dp=_dp } puts dp.max