N,D = list(map(int,input().split())) T = [0] * N K = [0] * N for i in range(N): T[i],K[i] = list(map(int,input().split())) dp = [[0] * 2 for _ in range(N)] dp[0][0] = T[0] dp[0][1] = K[0] - D for i in range(1,N): 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(max(dp[N-1][0],dp[N-1][1]))