#include #define rep(i,n) for(int i=(0);i<(n);i++) using namespace std; typedef long long ll; typedef unsigned long long ull; int main(){ cin.tie(0); ios::sync_with_stdio(false); ll n, d; cin >> n >> d; vector t(n), k(n); rep(i, n) cin >> t[i] >> k[i]; ll dp[n][2]; rep(i, n) rep(j, 2) dp[i][j] = 0; dp[0][0] = t[0]; dp[0][1] = k[0] - d; rep(i, n-1){ dp[i+1][0] = max(dp[i][0] + t[i+1], dp[i][1] + t[i+1] - d); dp[i+1][1] = max(dp[i][0] + k[i+1] - d, dp[i][1] + k[i+1]); } cout << max(dp[n-1][0], dp[n-1][1]) << endl; }