vyska = [int(_) for _ in input().split()]
hmotnost = [int(_) for _ in input().split()]
nosnost = [int(_) for _ in input().split()]
maximalna_vyska = 0
n = len(vyska)
moze_veza = [False for _ in range(1<<n)]
moze_veza[0] = True
for mnozina in range(1, 1<<n):
celk_vyska = sum(vyska[i] for i in range(n) if mnozina & (1 << i) > 0)
celk_hmotnost = sum(hmotnost[i] for i in range(n) if mnozina & (1 << i) > 0)
for skatula in range(n):
if mnozina & (1 << skatula) > 0:#ak sa skatula nachadza v mnozine
if nosnost[skatula] >= celk_hmotnost-hmotnost[skatula] and moze_veza[mnozina ^ (1 << skatula)]:
moze_veza[mnozina] = True
maximalna_vyska = max(maximalna_vyska, celk_vyska)
print(maximalna_vyska)
Cez pole vezi
vyska = [int(_) for _ in input().split()]
hmotnost = [int(_) for _ in input().split()]
nosnost = [int(_) for _ in input().split()]
maximalna_vyska = 0
n = len(vyska)
moze_veza = [False for _ in range(1<<n)]
moze_veza[0] = True
for mnozina in range(1, 1<<n): #vsetky mnoziny skatul
skatule = [i for i in range(n) if mnozina & (1 << i) > 0]
#print(mnozina, skatule) #bitovy zapis mnoziny skatul
celk_vyska = sum(vyska[skatula] for skatula in skatule)
celk_hmotnost = sum(hmotnost[skatula] for skatula in skatule)
for skatula in skatule:
if nosnost[skatula] >= celk_hmotnost-hmotnost[skatula] and moze_veza[mnozina - (1 << skatula)]:
moze_veza[mnozina] = True
maximalna_vyska = max(maximalna_vyska, celk_vyska)
break
print(maximalna_vyska)