output_description: Print K lines. The i-th line should contain the i-th smallest Snuke number.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      K
attempt: # snuke numbers
  K = int(input())
  # S(x) == Mとなる　ｘが存在するならば x=1y9999...99のパターんのみ
  
  
  def optimize(M):
      if 1 <= M <= 9:
          return M
      Left = M - 1
      ans = 1
      u, v = divmod(M - 1, 9)
      if v == 0:
          return int(str(ans) + "9" * u)
      else:
          if ans + v > 9:
              return int(str(ans) + str(v) + "9" * u)
          else:
              return int(str(v + ans) + "9" * u)
  
  
  Answer = []
  Possible_answer = [(i, optimize(i), optimize(i) / i) for i in range(1, 1001)]
  Possible_answer.sort(key=lambda x: x[-1])
  for i in range(1000):
      index, number = Possible_answer[i][0], Possible_answer[i][1]
      should_be_added = True
      for j in range(i):
          if Possible_answer[j][1] > number:
              should_be_added = False
              break
      if should_be_added:
          Answer.append(number)
  Answer.sort()
  for x in Answer[:K]:
      print(x)
  
problem_description: Statement
  
  Let S(n) denote the sum of the digits in the decimal notation of n. For
  example, S(123) = 1 + 2 + 3 = 6.
  
  We will call an integer n a **Snuke number** when, for all positive integers m
  such that m > n, \frac{n}{S(n)} \leq \frac{m}{S(m)} holds.
  
  Given an integer K, list the K smallest Snuke numbers.
samples: [{"input": "10", "output": "1\n    2\n    3\n    4\n    5\n    6\n    7\n    8\n    9\n    19"}]