k=gets.to_i

def f(n)
  t=0
  m=n
  while m!=0
    t+=m%10
    m/=10
  end
  n/t
end

tmp = (1..9).to_a
tmp += (1..9).to_a.map{|n|n*10+9}
tmp += (1..9).to_a.map{|n|n*100+99}

if k <= 27
  puts tmp[0..k-1].join("\n")
else
  puts tmp.join("\n")
  k -= 27
  b = 99
  ls = (10..19).to_a + (2..9).map {|n|n*10+9}
  lslen = ls.length
  a = 100
  loop do
    ls_ = ls.map {|n|n*a+b}
    if lslen < k
      puts ls_.join("\n")
      k -= lslen
      b = b*10+9
      a *= 10
    else
      puts ls_[0..k-1].join("\n")
      exit 0
    end
    # p [b + a*x, f(b+a*x)]
  end
end

# (1099,1199..1999)
# (10999,11999..19999)