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 = [-A]*(N+1) dp[0] = 0 res = 0 for i in range(1,N): for l, p in G[i]: dp[i] = max(dp[i],dp[l]+p-A) res = max(res,dp[i]) dp[i] = max(dp[i],res-A) for l, p in G[-1]: dp[-1] = max(dp[-1],dp[l]+p) res = max(res,dp[-1]) print(res)