#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <iomanip>
using namespace std;

int DP[101][2];

int main()
{
	int N, D; cin >> N >> D;
	vector<int>T(N), K(N);
	for (int i = 0; i < N; i++) {
		cin >> T[i] >> K[i];
	}

	DP[0][1] = -D;
	for (int i = 0; i < N; i++) {
		DP[i + 1][0] = max(DP[i][0] + T[i], DP[i][1] + T[i] - D);
		DP[i + 1][1] = max(DP[i][0] + K[i] - D, DP[i][1] + K[i]);
	}

	cout << max(DP[N][0], DP[N][1]) << endl;

	return 0;
}