#include <iostream>
#include <vector>
#include <set>
using namespace std;
typedef long long ll;
vector<pair<ll,ll>> v[100010];
set<ll> s;
ll dp[100010],b[100010];
int main(){
	ll i,j,n,m,a;
	cin >> n >> m >> a;
	for(i=0;i<m;i++){
		ll l,r,p;
		cin >> l >> r >> p; l--;
		v[r].push_back({l,p});
		if(r==n){
			s.insert(l);
			b[l] = p;
		}
	}
	for(i=1;i<=n;i++){
		dp[i] = -a;
	}
	dp[0] = 0;
	ll mx = 0;
	for(i=1;i<n;i++){
		dp[i] = mx - a;
		for(j=0;j<v[i].size();j++){
			dp[i] = max(dp[i],dp[v[i][j].first] + v[i][j].second - a);
		}
		mx = max(mx,dp[i]);
	}
	ll ans = -100000000000000;
	for(i=0;i<n;i++){
		if(s.count(i)){
			dp[i] += b[i];
		}
		ans = max(ans,dp[i]);
	}
	cout << ans << endl;
}