from atcoder.segtree import SegTree N,M,A = map(int,input().split()) ST = SegTree(max, 0, [0] * (N+1)) LRP = [list(map(int,input().split())) for _ in range(M)] LRP.sort(key = lambda x:x[1]) ans = 0 for l,r,p in LRP: if l == 1: x = p - A if r == N: x += A if x > ST.get(r): ST.set(r,x) ans = max(ans,x) else: x = ST.prod(0,l-2) y = ST.get(l-1) + A if y > 1: x = max(x,y) x += p - 2 * A if r == N: x += A if x > ST.get(r): ST.set(r,x) ans = max(ans,x) print(ans)