def larger(x, y): if x > y: return x return y N, D = map(int, raw_input().split()) T = [] K = [] for i in range(0, N): t, k = map(int, raw_input().split()) T.append(t) K.append(k) dpt = [0, T[0]] dpk = [0, K[0]-D] for i in range(1, N): newt = T[i] + larger(dpt[-1], dpk[-1]-D) newk = K[i] + larger(dpt[-1]-D, dpk[-1]) dpt.append(newt) dpk.append(newk) print larger(dpt[-1], dpk[-1])