#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; }