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: Wrong Answer)

require 'pp'
# IS_DEBUG = true
IS_DEBUG = false
def dputs str
	if(IS_DEBUG)
		puts str
	end
end
def dpp str
	if(IS_DEBUG)
		pp str
	end
end

require 'pp'

INT_MAX = 999999999999999999999999

def dig(i)
	sum = 0
	while(i>0)
		sum += i%10
		i = i/10
	end
	sum 
end

K,d=gets.chomp.split(' ').map{|n| n.to_i}
i=1
len = 0
d = 1
subd = 0
while(i<=K)
	if(len>=3 && d==1)
		nstr = d.to_s+subd.to_s+"9"*(len-1)
	else
		nstr = d.to_s+"9"*len
	end
		puts nstr
		dputs "#{i}, #{nstr.to_i*1.0/dig(nstr.to_i)}"
	i+=1
	if(len>=3 && d==1)
		if(subd<9)
			subd+=1
		else
			subd = 0
			d+=1
		end		
	elsif(d<9)
		d+=1
	else
		len += 1
		d = 1
	end
end