import sys def main(): T = int(sys.stdin.readline()) X, A = map(int, sys.stdin.readline().split()) Y, B = map(int, sys.stdin.readline().split()) min_cost = float('inf') # Check the case where we only use waiting days (only possible if T is positive) if T >= 0: min_cost = T # Iterate over possible k (forward steps) max_iterations = 2 * 10**6 for k in range(0, max_iterations): numerator = k * A - T if numerator <= 0: m = 0 else: m = (numerator + B - 1) // B S = k * A - m * B if S > T: continue cost = k * X + m * Y + (T - S) if cost < min_cost: min_cost = cost # Iterate over possible m (backward steps) for m in range(0, max_iterations): numerator = m * B + T if numerator <= 0: k = 0 else: k = (numerator + A - 1) // A S = k * A - m * B if S > T: continue cost = k * X + m * Y + (T - S) if cost < min_cost: min_cost = cost print(min_cost) if __name__ == "__main__": main()