import sys input = sys.stdin.readline N,T = map(int,input().split()) LRP = [tuple(map(int,input().split())) for _ in range(N)] LRP.sort(key=lambda x:x[1]) from atcoder.segtree import SegTree INF = 10**18 MAXT = 4*10**5 + 5 segt = SegTree(max, -INF, MAXT) B = 10**6 segt.set(0,MAXT) for l,r,p in LRP: l += T r += T v = segt.prod(0,r-T+1) x,m = divmod(v,B) t = MAXT - m assert t+T <= r nv = (x+p)*B + (MAXT - (t+T)) segt.set(t+T, max(segt.get(t+T), nv)) print(segt.all_prod() // B)