import sys input = sys.stdin.buffer.readline sys.setrecursionlimit(10 ** 7) N, M, A = map(int, input().split()) LRX = list(tuple(map(int, input().split())) for _ in range(M)) LRX.sort(key=lambda x: x[1]) p = 0 dp = [0] * (N + 1) for i in range(1, N): while p < M and LRX[p][1] == i: l, r, x = LRX[p] p += 1 dp[r] = max(dp[r], dp[l - 1] + x - A) while p < M: l, r, x = LRX[p] p += 1 dp[r] = max(dp[r], dp[l - 1] + x) print(max(dp))