import random def does_change(cur_place, cur_day): # if (money[cur_day][cur_place] >= money[cur_day][not cur_place]): # print("money[cur_day][cur_place]:", money[cur_day][cur_place]) # print("money[cur_day][not cur_place]:", money[cur_day][not cur_place]) # print("!") # return False a = 0 b = - 2 * D for i in range(cur_day, N): a += money[i][cur_place] b += money[i][not cur_place] #print("a:", a, "b:", b) #print("i:", i) if (a < b): return True #print("a:", a, "b:", b) if (a < b + D): return True else: return False N, D = map(int, input().split()) money = [list(map(int, input().split())) for i in range(N)] #T = [0 for i in range(N)] #K = [0 for i in range(N)] #for i in range(N): # T[i], K[i] = map(int, input().split()) # for i in range(N): # print(money[i][0], money[i][not 0]) cur_place = 0 cur_v = 0 for i in range(N): if (does_change(cur_place, i)): cur_place = not cur_place cur_v -= D # print("cur_place:", int(cur_place)) cur_v += money[i][cur_place] print(cur_v)