#include <iostream>
#include <vector>
#include <algorithm>
#include <string>

using namespace std;

typedef long long int ll;

float calc_sd(ll n) {
    string temp = std::to_string(n);
    int sn = 0;
    for(int i = 0;i < temp.length();i++) {
        char tt[2];
        tt[0] = temp[i];
        tt[1] = NULL;
        sn = sn + atoi(tt);
    }
    float retval = 0;
    retval = (float)n / (float)sn;
    return retval;
}

bool if_sunuke(int sunuke) {
    for(int i = sunuke + 1;i < sunuke * 10;i++) {
        if(calc_sd(sunuke) > calc_sd(i))
            return false;
    }
    return true;
}

int main(void) {
    ll res = 1;
    ll pls = 1;
    int count = 1;
    int k;
    cin >> k;
    cout << 1 << endl;
    while(count < k) {
        while(calc_sd(res + pls + pls) < calc_sd(res + pls))
            pls = pls * 10;
        res = res + pls;
        cout << res << endl;
        count++;
    }
}
