k, A, B = gets.split.map(&:to_i)
# 最初に1円がほしいのでA枚になるまで増やしたい
# が、交換すると損をする場合またはターン数(K)が短い場合ひたすら叩く
if B - A <= 2 || k < A - 1 || k < 2
  puts k + 1
else
  # A - 1 ターンでビスケットをA枚にしてその後2ターン消費してビスケットをB枚にする
  k -= A + 1 # A - 1 + 2
  # 2ターンのサイクルでビスケットA枚をB枚にすることを繰り返す
  # 奇数の場合は最後に1枚増やす
  p A + (B - A) * (k / 2) + (k.odd? ? 1 : 0)
end