# 入力
N, C_snukeprime = [int(x) for x in input().split()]

# 料金増減イベントの作成
# a-1日目とa日目の間に増加、b日目とb+1日目の間に減少するイベント
# つまり、a日目とa+1日目の間にc円増減するイベントをまとめる
event = []
for i in range(N):
  a, b, c = [int(x) for x in input().split()]
  a -= 1
  event.append([a,c])
  event.append([b,-c])

# 料金増減イベントのソート
event.sort()

# 変数の準備
# 答え(最小の料金合計)、各々の時刻の料金、今どの時刻を見ているのかの3変数
ans = 0
fee = 0
t = 0

# イベントはソート済みなので順番に見ていく
for x,y in event:
  # 同じ時刻のイベントがある場合があるので、その可能性を考慮
  if x != t:
    ans += min(C_snukeprime,fee)*(x-t)
    t = x
  fee += y

# 答えを出力
print(ans)