#include using namespace std; const long long int INF = 1LL << 60; int N; long long int D, C[110][3]; long long int dp[110][3]; int main() { cin >> N >> D; for (int i = 0; i < N; i++) { cin >> C[i][0] >> C[i][1]; } for (int i = 0; i <= N; i++) { for (int j = 0; j < 2; j++) { dp[i][j] = -INF; } } dp[0][0] = 0; dp[0][1] = -D; for (int d = 0; d < N; d++) { for (int p = 0; p < 2; p++) { dp[d + 1][p] = max(dp[d + 1][p], dp[d][p] + C[d][p]); dp[d + 1][1 - p] = max(dp[d + 1][1 - p], dp[d][p] + C[d][1 - p] - D); } } cout << max(dp[N][0], dp[N][1]) << endl; return 0; }