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])