# 2次元dpではRE、横に大きすぎるのでdp_old, dp_newを使う
# dp[-1のとき, +1のとき]のf(s)最小値

N, A, B = map(int, input().split())

dp_old = [0, 0]

for i in range(N):
    if i == 0:
        dp_new = [-B*(-1), -B*(+1)]
    else:
        dp_new = [min(dp_old[0]+A-B*(-1),dp_old[1]-A-B*(-1)), min(dp_old[0]-A-B*(+1), dp_old[1]+A-B*(+1))]
    dp_old = dp_new
    #print(dp[i])
    
ans = min(dp_old)
print(ans)