import java.util.Scanner

object Main {
  def main(args: Array[String]): Unit = println(solve(new Scanner(System.in)))

  def solve(in: String): String = solve(new Scanner(in))

  def snukeD(N: Long): Long = {
    var n = N
    var m = 0L
    while (n > 0) {
      m += (n % 10)
      n /= 10
    }
    m
  }

  def f(N: Long): Long = {
    var n = N
    var sd = snukeD(N)
    var min = (n, n.toDouble / sd.toDouble)
    var delta = 1
    for (i <- 1 until N.toString.length) {
      while ((n + 1) % (delta * 10) != 0) {
        n += delta
        sd += 1
        val m = (n, n.toDouble / sd.toDouble)
        if (m._2 < min._2) {
          min = m
        }
      }
      delta *= 10
    }
    min._1
  }

  def solve(sc: Scanner): String = {
    val K = sc.nextInt

    var n = 1L
    for (i <- 1 to K) {
      println(n)
      n = f(n + 1)
    }
    ""
  }
}
