// Package main provides
//
// File:  d.go
// Author: ymiyamoto
//
// Created on Thu Jan 24 16:20:46 2019
//
package main

import (
	"fmt"
	"strconv"
)

func digitSum(n int) int {
	s := strconv.Itoa(n)

	sum := 0
	for i := range s {
		sum += int(s[i] - '0')
	}
	return sum
}

func pow10(n int) int {
	if n == 0 {
		return 1
	}
	return 10 * pow10(n-1)
}

func main() {
	var K int
	fmt.Scan(&K)
	candidates := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}

	for i := 1; i <= 14; i++ {
		for j := 1; j <= 9; j++ {
			n := pow10(i)
			candidates = append(candidates, j*n+n-1)
		}
	}

	anss := make([]int, 0)
	for i, n := range candidates {
		for j := i + 1; j < len(candidates); j++ {
			m := candidates[j]
			if digitSum(m)*n > digitSum(n)*m {
				continue
			}
		}
		anss = append(anss, n)
	}

	for i := 0; i < K; i++ {
		fmt.Println(anss[i])
	}
}
