# 入力 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)