# dpかな # dp[i日目][東京で働く0、京都で働く1]最大収入、遷移で移動コスト反映 N, D = map(int, input().split()) T, K = [0], [0] for i in range(N): t, k = map(int, input().split()) T.append(t) K.append(k) dp = [[0]*2 for i in range(N+1)] dp[0][1] = -10**20 for i in range(1, N+1): dp[i][0] = max(dp[i-1][0]+T[i], dp[i-1][1]+T[i]-D) dp[i][1] = max(dp[i-1][0]+K[i]-D, dp[i-1][1]+K[i]) #print(dp[i]) ans = max(dp[N]) print(ans)