output_description: Print the shortest time needed to produce at least N cookies not yet eaten.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      N A
attempt: from math import ceil
  import sys
  
  n, a = map(int, next(sys.stdin).strip().split())
  
  stats = [(0, 1, 2)]
  time = n
  while len(stats) > 0:
      t, s, k = stats.pop(0)
      time = min(time, t + ceil(n / s))
      for d in range(k, 2 + a + 1):
          stats.append((t + d + a, d * s, d))
      stats = sorted((t, s, k) for t, s, k in stats if t < time)
  print(time)
  
problem_description: Statement
  
  Rng is baking cookies.
  
  Initially, he can bake one cookie per second.
  
  He can also eat the cookies baked by himself. When there are x cookies not yet
  eaten, he can choose to eat all those cookies. After he finishes eating those
  cookies, the number of cookies he can bake per second becomes x. Note that a
  cookie always needs to be baked for 1 second, that is, he cannot bake a cookie
  in 1/x seconds when x > 1. When he choose to eat the cookies, he must eat all
  of them; he cannot choose to eat only part of them. It takes him A seconds to
  eat the cookies regardless of how many, during which no cookies can be baked.
  
  He wants to give N cookies to Grandma. Find the shortest time needed to
  produce at least N cookies not yet eaten.
samples: [{"input": "8 1", "output": "7\n    \n\nIt is possible to produce 8 cookies in 7 seconds, as follows:\n\n  * After 1 second: 1 cookie is done.\n  * After 2 seconds: 1 more cookie is done, totaling 2. Now, Rng starts eating those 2 cookies.\n  * After 3 seconds: He finishes eating the cookies, and he can now bake 2 cookies per second.\n  * After 4 seconds: 2 cookies are done.\n  * After 5 seconds: 2 more cookies are done, totaling 4.\n  * After 6 seconds: 2 more cookies are done, totaling 6.\n  * After 7 seconds: 2 more cookies are done, totaling 8.\n\n* * *"}, {"input": "1000000000000 1000000000000", "output": "1000000000000"}]