N, V, L = map(int, input().split()) x = [[0, 0] for i in range(L + 1)] # 容量 かかる費用 for i in range(N): t, m, p = map(int, input().split()) x[t] = [m, p] dp = [[float('inf') for i in range(V + 1)] for j in range(L + 1)] dp[0][V] = 0 for i in range(L): for j in range(V + 1): if dp[i][j] != float('inf'): dp[i][min(x[i][0] + j, V)] = min(dp[i][j] + x[i][1], dp[i][min(x[i][0] + j, V)]) if j > 0: dp[i + 1][j - 1] = min(dp[i + 1][j - 1], dp[i][j]) ans = float('inf') for i in dp[L]: ans = min(ans, i) print(ans if ans != float('inf') else -1)