#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;
}