import sys input = sys.stdin.readline N,V,L=map(int,input().split()) G=[list(map(int,input().split())) for i in range(N)] if G[-1][0]!=L: G.append([L,0,0]) DP=[0]*(V+1) now=0 for x,v,w in G: NDP=[1<<60]*(V+1) for i in range(V+1): money=DP[i] if i-(x-now)>=0: NDP[i-(x-now)]=min(money,NDP[i-(x-now)]) NDP[min(V,i-(x-now)+v)]=min(NDP[min(V,i-(x-now)+v)],money+w) DP=NDP #print(DP) now=x #print(DP) MIN=min(DP) if MIN>=(1<<60): print(-1) else: print(MIN)