def max_items_possible():
n = int(input())
req = [0] + list(map(int, input().split()))
stock = [0] + list(map(int, input().split()))
cost = [0] + list(map(int, input().split()))
budget = int(input())
u = 0
low = 0
high = 10**18 # 1e18
while low <= high:
mid = (low + high) // 2
total_cost = 0
possible = True
for j in range(1, n + 1):
needed = req[j] * mid
shortage = needed - stock[j]
if shortage > 0:
item_cost = shortage * cost[j]
total_cost += item_cost
if total_cost > budget:
possible = False
break
if possible:
u = mid
low = mid + 1 # Try to make more items
else:
high = mid - 1 # Reduce the target number of items
print(u)
ZGVmIG1heF9pdGVtc19wb3NzaWJsZSgpOgoKICAgIG4gPSBpbnQoaW5wdXQoKSkKICAgIHJlcSA9IFswXSArIGxpc3QobWFwKGludCwgaW5wdXQoKS5zcGxpdCgpKSkKICAgIHN0b2NrID0gWzBdICsgbGlzdChtYXAoaW50LCBpbnB1dCgpLnNwbGl0KCkpKQogICAgY29zdCA9IFswXSArIGxpc3QobWFwKGludCwgaW5wdXQoKS5zcGxpdCgpKSkKICAgIGJ1ZGdldCA9IGludChpbnB1dCgpKQoKICAgIHUgPSAwCiAgICBsb3cgPSAwCiAgICBoaWdoID0gMTAqKjE4ICAjIDFlMTgKCiAgICB3aGlsZSBsb3cgPD0gaGlnaDoKICAgICAgICBtaWQgPSAobG93ICsgaGlnaCkgLy8gMgogICAgICAgIHRvdGFsX2Nvc3QgPSAwCiAgICAgICAgcG9zc2libGUgPSBUcnVlCgogICAgICAgIGZvciBqIGluIHJhbmdlKDEsIG4gKyAxKToKICAgICAgICAgICAgbmVlZGVkID0gcmVxW2pdICogbWlkCiAgICAgICAgICAgIHNob3J0YWdlID0gbmVlZGVkIC0gc3RvY2tbal0KICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIHNob3J0YWdlID4gMDoKICAgICAgICAgICAgICAgIGl0ZW1fY29zdCA9IHNob3J0YWdlICogY29zdFtqXQogICAgICAgICAgICAgICAgdG90YWxfY29zdCArPSBpdGVtX2Nvc3QKICAgICAgICAgICAgICAgIAogCiAgICAgICAgICAgICAgICBpZiB0b3RhbF9jb3N0ID4gYnVkZ2V0OgogICAgICAgICAgICAgICAgICAgIHBvc3NpYmxlID0gRmFsc2UKICAgICAgICAgICAgICAgICAgICBicmVhawoKICAgICAgICBpZiBwb3NzaWJsZToKICAgICAgICAgICAgdSA9IG1pZAogICAgICAgICAgICBsb3cgPSBtaWQgKyAxICAjIFRyeSB0byBtYWtlIG1vcmUgaXRlbXMKICAgICAgICBlbHNlOgogICAgICAgICAgICBoaWdoID0gbWlkIC0gMSAgIyBSZWR1Y2UgdGhlIHRhcmdldCBudW1iZXIgb2YgaXRlbXMKCiAgICBwcmludCh1KQ==