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 Pascal (FPC 2.6.2) (judge verdict: Accepted)

var
	n,a:int64;
	i,k:Longint;
function S(n:int64):int64;
var x:int64;
begin
	x:=0;
	while n>0 do begin
		x:=x+n mod 10;
		n:=n div 10;
	end;
	S:=x;
end;
begin
	n:=1;
	a:=1;
	read(k);
	writeln(1);
	for i:=2 to k do begin
		if (n+a*10)*S(n+a)<(n+a)*S(n+a*10)then a:=a*10;
		n:=n+a;
		writeln(n);
	end;
end.