Problem:
Score : 500 points

Problem 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.

Constraints

1 \leq K

The K-th smallest Snuke number is not greater than 10^{15}.

Input

Input is given from Standard Input in the following format:

K

Output

Print K lines. The i-th line should contain the i-th smallest Snuke number.

Sample Input 1

10

Sample Output 1

1
2
3
4
5
6
7
8
9
19

Solution in Ruby (2.3.3) (judge verdict: Accepted)

k = gets.to_i

a = []
16.times{|i|
  10000.times{|j|
    w = ((j+1).to_s + "9"*i).to_i
    a << w if w <= 10**15
  }
}

a.uniq!.sort!

a = a.map{|t|
  tmp = t
  x = 0
  while tmp>0
    x += tmp%10
    tmp /= 10
  end
  [(t/x)+((t%x).to_f/x),t]
}

a.sort!{|a,b|a[0]<=>b[0]}

prev = 0
ans = []
a.each{|(v,t)|
  if prev < t
    ans << t
    prev = t
  end
}

ans[0...k].each{|t| p t}