#include<iostream>
#include<algorithm>
using namespace std;
int N,V,L;
long dp[2001][2001];
main()
{
	cin>>N>>V>>L;
	for(int i=0;i<=V;i++)dp[0][i]=4e18;
	dp[0][V]=0;
	int pre=0;
	for(int i=0;i<N;i++)
	{
		for(int j=0;j<=V;j++)dp[i+1][j]=4e18;
		int x,v,w;cin>>x>>v>>w;
		for(int j=0;j<=V;j++)
		{
			if(j<x-pre)continue;
			int nj=j-(x-pre);
			dp[i+1][nj]=min(dp[i+1][nj],dp[i][j]);
			dp[i+1][min(V,nj+v)]=min(dp[i+1][min(V,nj+v)],dp[i][j]+w);
		}
		pre=x;
	}
	long ans=4e18;
	for(int j=0;j<=V;j++)
	{
		if(j<L-pre)continue;
		ans=min(ans,dp[N][j]);
	}
	cout<<(ans<1e18?ans:-1)<<endl;
}