#include #include #include #include #include #include #include #include #include #include #include #include int main() { long long n, d; std::cin >> n >> d; // tokyo, kyoto std::vector > v(n); for (int i = 0; i < n; i++) { long long a, b; std::cin >> a >> b; v[i] = { a, b }; } long long tokyo = v[0].first; long long kyoto = v[0].second - d; for (size_t i = 1; i < n; i++) { long long tmp = tokyo; tokyo = std::max(tokyo + v[i].first, kyoto - d + v[i].first); kyoto = std::max(kyoto + v[i].second, tmp - d + v[i].second); } std::cout << std::max(tokyo, kyoto) << std::endl; return 0; }