#include using namespace std; using ll = long long; using ul = unsigned long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, d; cin >> n >> d; vector t(n), k(n); for (int i = 0; i < n; ++i) cin >> t[i] >> k[i]; vector > dp(n, vector(2)); dp[0][0] = t[0]; dp[0][1] = k[0] - d; for (int i = 1; i < n; ++i) { dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] - d) + t[i]; dp[i][1] = max(dp[i - 1][0] - d, dp[i - 1][1]) + k[i]; } cout << max(dp[n - 1][0], dp[n - 1][1]) << "\n"; return 0; }