#include using namespace std; int n, d; int a[101], b[101]; int dp[101][2]; int solver(int v = -1, bool f = false) { if (v == n) return 0; int &res = dp[v][f]; if (v != -1 && ~res) return res; res = max(solver(v + 1, false) + a[v + 1] - (f ? d : 0), solver(v + 1, true) + b[v + 1] - (f ? 0 : d)); return res; } int main() { cin >> n >> d; for (int i = 0; i < n; ++i) { cin >> a[i] >> b[i]; } memset(dp, -1, sizeof(dp)); cout << solver() << endl; }