class Attraction: def __init__(self, satis: int, waiting: int) -> None: self.satisfied = satis self.waiting = waiting def visited(self): self.satisfied //= 2 @property def satis_per_h(self) -> float: return self.satisfied / self.waiting def main(): T = int(input()) N = int(input()) c = list(map(int, input().split())) v = list(map(int, input().split())) attractions = [Attraction(satis, waiting) for satis, waiting in zip(v, c)] attractions = list(filter(lambda att: att.waiting <= T, attractions)) sum_satisfied = 0 while attractions: attractions.sort(key=lambda att: att.satis_per_h) sum_satisfied += attractions[-1].satisfied attractions[-1].visited() T -= attractions[-1].waiting attractions = list(filter(lambda att: att.waiting <= T, attractions)) print(sum_satisfied) if __name__ == "__main__": main()