N,W,D = map(int,input().split()) t,w,v = [0]*N,[0]*N,[0]*N situzero = 0 kati = 0 situiti = 0 maxx = 0 for i in range(N): t[i],w[i],v[i] = map(int,input().split()) for i in range(2**N): for j in range(N): if ((i>>j)&1): kati += v[j] if t[j] == 0: situzero += w[j] else: situiti += w[j] if (abs(situzero-situiti) <= D)and(situzero + situiti <= W): if kati > maxx: maxx = kati situzero = 0 kati = 0 situiti = 0 print(maxx)