def ILLINRows(N): return [list(map(int, input().split())) for i in range(N)] def twoDimArray(row,column,n): return [[n for j in range(column)] for i in range(row)] n,d=map(int, input().split()) lis = ILLINRows(n) dp =twoDimArray(2,n,0) dp[0][0]=lis[0][0] dp[1][0]=lis[0][1]-d for i in range(1,len(dp[0])): dp[0][i]=max(dp[0][i-1]+lis[i][0],dp[1][i-1]+lis[i][0]-d) dp[1][i]=max(dp[1][i-1]+lis[i][1],dp[0][i-1]+lis[i][1]-d) print(max(dp[1][n-1],dp[0][n-1]))