N, M, A = map(int, input().split()) G = [list() for _ in range(N+1)] for i in range(M): l,r,p = map(int, input().split()) l-=1 G[r].append([l,p]) dp = [0]*(N+1) res = 0 for i in range(1,N): for l, p in G[i]: dp[i] = max(dp[i],dp[l]+p-A) if dp[i]==0: dp[i] = -A res = max(res,dp[i]) for l, p in G[-1]: dp[-1] = max(dp[-1],dp[l]+p) res = max(res,dp[-1]) print(res)