#include <bits/stdc++.h>
using namespace std;

int main() {
	int N, D;
	cin >> N >> D;
	vector<vector<int>> TK(N, vector<int>(2));
	for(int i = 0; i < N; i++) {
		for(int j = 0; j < 2; j++) {
			cin >> TK.at(i).at(j);
		}
	}
	vector<int> dpt(N + 1, 0);
	vector<int> dpk(N + 1, 0);
	for(int i = 1; i <= N; i++) {
		dpt.at(i) = max(dpt.at(i - 1), dpk.at(i - 1) - D) + TK.at(i - 1).at(0);
		dpk.at(i) = max(dpt.at(i - 1) - D, dpk.at(i - 1)) + TK.at(i - 1).at(1);
	}
	cout << max(dpt.at(N), dpk.at(N)) << endl;
}