#include using namespace std; using ll = long long; constexpr ll INF = 1e17; int main() { cin.tie(nullptr); ios::sync_with_stdio(false); int n, V, L; cin >> n >> V >> L; vector< vector > dp(n + 1, vector(V + 1, INF)); dp[0][V] = 0; int prvx = 0; for (int i = 0; i < n; ++i) { int x, v; ll w; cin >> x >> v >> w; int hoge = x - prvx; for (int j = hoge; j <= V; ++j) { dp[i + 1][j - hoge] = min(dp[i + 1][j - hoge], dp[i][j]); ll& tar = dp[i + 1][min(j - hoge + v, V)]; tar = min(tar, dp[i][j] + w); } prvx = x; } ll foo = L - prvx; ll ans = INF; for (ll i = foo; i <= V; ++i) { ans = min(ans, dp[n][i]); } cout << (ans >= INF ? -1 : ans) << "\n"; return 0; }