// 基本テンプレート #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define rep(i,a,n) for(int (i)=(a); (i)<(n); (i)++) #define repq(i,a,n) for(int (i)=(a); (i)<=(n); (i)++) #define repr(i,a,n) for(int (i)=(a); (i)>=(n); (i)--) #define int long long int template void chmax(T &a, T b) {a = max(a, b);} template void chmin(T &a, T b) {a = min(a, b);} template void chadd(T &a, T b) {a = a + b;} typedef pair pii; typedef long long ll; int dx[] = {0, 0, 1, -1}; int dy[] = {1, -1, 0, 0}; constexpr ll INF = 1001001001001001LL; constexpr ll MOD = 1000000007LL; int N, D; int dp[110][2]; int job[110][2]; signed main() { cin >> N >> D; rep(i,0,N) { cin >> job[i][0] >> job[i][1]; } memset(dp, -1, sizeof(dp)); dp[0][0] = 0; rep(i,0,N) rep(j,0,2) { if(dp[i][j] < 0) continue; rep(k,0,2) { if(j == k) chmax(dp[i+1][k], dp[i][j] + job[i][k]); else chmax(dp[i+1][k], dp[i][j] + job[i][k] - D); } } cout << max(dp[N][0], dp[N][1]) << endl; return 0; }