T = int(input()) X, A = map(int, input().split()) Y, B = map(int, input().split()) if T > 0: candidates = [T] k_max = T // A if k_max >= 0: cost2 = k_max * X + (T - k_max * A) candidates.append(cost2) k_plus = k_max + 1 diff = k_plus * A - T if diff > 0: m = (diff + B - 1) // B # Ceiling division residual = T - (k_plus * A - m * B) if residual >= 0: cost3 = k_plus * X + m * Y + residual candidates.append(cost3) print(min(candidates)) else: T_abs = -T candidates = [] m0 = (T_abs + B - 1) // B # Ceiling division for m cost1 = m0 * Y + (m0 * B - T_abs) candidates.append(cost1) remainder = m0 * B - T_abs if remainder >= 0: if remainder % A == 0: k = remainder // A if k >= 0: cost2 = m0 * Y + k * X candidates.append(cost2) print(min(candidates))