N, D = map(int, input().split()) DP = [[0] * (2) for _ in range(N + 1)] DP[0][1] = -10**18 for i in range(1, N + 1): data = list(map(int, input().split())) for j in range(2): DP[i][j] = max( # 同じ場所から DP[i - 1][j] + data[j], # 場所移動あり DP[i - 1][1 - j] + data[j] - D ) ans = max(DP[-1]) print(ans)