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 JavaScript (node.js v5.12) (judge verdict: Wrong Answer)

var main = function(s) {
	var K =parseInt(s);
  	var count = 0;
  	var A;
  	var B;
  	for(var i=1;i<1000000;i++){
  	var N = String(i);
  	var array = N.split('').map(x=>parseInt(x));
  	var L = N.length;
  	var sum = 0;
  	for(var j=0;j<L;j++){
  	sum+=array[j];
    }
      var N_sub = String(i+1);
  	var array = N_sub.split('').map(x=>parseInt(x));
  	var L_sub = N_sub.length;
  	var sum_sub = 0;
  	for(var k=0;k<L;k++){
  	sum_sub+=array[k];
    }
      A=i/sum;
      B=(i+1)/(sum_sub);
  if(A <= B){
    console.log(i);
    count++;
  	}
  if(count === K){
        return 0;
      }
    }
    return 0; 
}

main(require("fs").readFileSync("/dev/stdin", "utf8").trim());