#include <iostream> #include <vector> #include <utility> #include <algorithm> std::vector<std::vector<int>> dp(100, std::vector<int>(2)); int main() { int n, d; std::cin >> n >> d; std::vector<std::vector<int>> tk(n, std::vector<int>(2)); for (int i = 0; i < n; ++i) { std::cin >> tk[i][0] >> tk[i][1]; } dp[0][0] = tk[0][0]; dp[0][1] = tk[0][1] - d; for (int i = 1; i < n; ++i) { dp[i][0] = std::max(dp[i-1][0] + tk[i][0], dp[i-1][1] + tk[i][0] - d); dp[i][1] = std::max(dp[i-1][1] + tk[i][1], dp[i-1][0] + tk[i][1] - d); } std::cout << std::max(dp[n-1][0], dp[n-1][1]) << std::endl; return 0; }