output_description: Print the maximum possible number of biscuits in Snuke's pocket after K
  operations.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      K A B
attempt: K, A, B = map(int, input().split())
  K1 = K - (A + 1)
  n = K1 // 2
  print(max(K + 1, ((n + 1) * B - n * A + K1 % 2)))
  #
  K, A, B = map(int, input().split())
  (
      print(A + ((K - A + 1) // 2) * (B - A) + (K - A + 1) % 2)
      if (B - A > 2 and K - A > 0)
      else print(K + 1)
  )
  #
  k, a, b = map(int, input().split())
  if a + 2 > b:
      print(k + 1)
  else:
      print(a - 1 + (b - a) * (k - a + 1) // 2 + (k - a + 1) % 2)
  
problem_description: Statement
  
  Snuke has one biscuit and zero Japanese yen (the currency) in his pocket. He
  will perform the following operations exactly K times in total, in the order
  he likes:
  
    * Hit his pocket, which magically increases the number of biscuits by one.
    * Exchange A biscuits to 1 yen.
    * Exchange 1 yen to B biscuits.
  
  Find the maximum possible number of biscuits in Snuke's pocket after K
  operations.
samples: [{"input": "4 2 6", "output": "7\n    \n\nThe number of biscuits in Snuke's pocket after K operations is maximized as\nfollows:\n\n  * Hit his pocket. Now he has 2 biscuits and 0 yen.\n  * Exchange 2 biscuits to 1 yen. his pocket. Now he has 0 biscuits and 1 yen.\n  * Hit his pocket. Now he has 1 biscuits and 1 yen.\n  * Exchange 1 yen to 6 biscuits. his pocket. Now he has 7 biscuits and 0 yen.\n\n* * *"}, {"input": "7 3 4", "output": "8\n    \n\n* * *"}, {"input": "314159265 35897932 384626433", "output": "48518828981938099"}]