N, T = map(int, input().split()) LEN = 2 * 10**5 + 2 c = [0] * LEN for _ in range(N): _l, _r, _p = map(int, input().split()) c[_l] += _p c[_r] -= _p for i in range(1, LEN): if c[i] == 0: c[i] = c[i - 1] elif c[i] > 0: c[i] = max(c[i], c[i - 1]) elif c[i - 1] + c[i] != 0: c[i] = c[i - 1] p = [0] * LEN i = 0 ans = 0 while i < LEN: if c[i] != 0: p[i + T] = c[i] i += 1 break i += 1 while i < LEN: if p[i - 1] > p[i]: p[i] = p[i - 1] if c[i] > 0: if i + T >= LEN: ans = max(ans, c[i] + p[i]) elif c[i] + p[i] > p[i + T]: p[i + T] = c[i] + p[i] i += 1 print(max(p[-1], ans))