N,D = [int(i) for i in input().split()] syuunyuu=[] for i in range(N): line=[int(j) for j in input().split()] syuunyuu.append(line) syuunyuu.insert(0,[0,0]) # print(syuunyuu) #dp[j][i] #j日目にiにいるときの最大の収入 #i=0のとき東京,jのとき京都 dp=[[0 for i in range(2)] for j in range(N+1)] #初期条件 dp[0][0]=0 dp[0][1]=-100000000 for i in range(1,N+1): dp[i][0]=max(dp[i-1][0]+syuunyuu[i][0],dp[i-1][1]+syuunyuu[i][0]-D) dp[i][1]=max(dp[i-1][1]+syuunyuu[i][1],dp[i-1][0]+syuunyuu[i][1]-D) # print(dp) ans=max(dp[N][0],dp[N][1]) print(ans)