import std.stdio, std.conv, std.math, std.string, std.range, std.array,
       std.algorithm;

long s(long n)
{
    long s;
    while(n > 0)
    {
        s += n % 10;
        n /= 10;
    }
    return s;
}

void main(){
    auto K = readln().strip().to!int();

    long step = 1;

    long befoki = 0;
    long i = 1;
    for (long c = 0; c < K;) {
        auto nwev = i.to!double() / s(i);
        auto nxev = (i+step).to!double() / s(i+step);

        //write(nwev, "\t", nxev, "\t");
        //writeln(i);
        if(nwev <= nxev) {
            writeln(i);
            c++;
            if(step != i-befoki) {
                step = i - befoki;
            }
            befoki = i;
        }
        nwev = nxev;

        i += step;
    }
}
