from heapq import * N = int(input()) C, V = map(int, input().split()) INF = 10 ** 8 D = [INF] * (N + 1) D[1] = C Q = [(C + V, 2, 1)] D[2] = C + V while Q: cost, i, cp = heappop(Q) if cost > D[i]: continue if D[min(N, i + cp)] > D[i] + V: D[min(N, i + cp)] = D[i] + V if N > i + cp: heappush(Q, (D[i + cp], i + cp, cp)) if D[min(N, 2 * i)] > D[i] + C + V: D[min(N, 2 * i)] = D[i] + C + V if N > 2 * i: heappush(Q, (D[2 * i], 2 * i, cp)) print(D[N])