N, D = gets.split.map &:to_i T, K = $<.map{|s|s.split.map &:to_i}.transpose $t = {} $k = {} def t(n) $t[n] ||= if n == 0 T[0] else T[n] + [t(n-1), k(n-1)-D].max end end def k(n) $k[n] ||= if n == 0 K[0] - D else K[n] + [k(n-1), t(n-1)-D].max end end p [t(N-1), k(N-1)].max