def main(): N, D = list(map(int, input().split(" "))) Tn, Kn = [], [] for _ in range(N): t, k = list(map(int, input().split(" "))) Tn.append(t) Kn.append(k) ans_list = [[0] * N for _ in range(2)] ans_list[0][0] = Tn[0] ans_list[1][0] = Kn[0] - D for j in range(1, N): try: ans_list[0][j] = max(ans_list[0][j-1] + Tn[j], ans_list[1][j-1] + Tn[j] - D) ans_list[1][j] = max(ans_list[1][j-1] + Kn[j], ans_list[0][j-1] + Kn[j] - D) except: raise print(max(ans_list[0][-1], ans_list[1][-1])) if __name__ == "__main__": main()