#include <bits/stdc++.h>
using namespace std;
int maxKeta(long long n) {
  auto m = n;
  int r = 1;
  for (;;) {
    if (m / 10 == 0) {
      break;
    }
    m = m / 10;
    r++;
  }
  return r;
}
int maxKetaNumber(long long n) {
  auto m = n;
  int r = 1;
  for (;;) {
    if (m / 10 == 0) {
      break;
    }
    m = m / 10;
    r++;
  }
  return m;
}
int maxHitsuMaeKetaNumber(long long n) {
  long long m = n;
  int r = 1;
  for (;;) {
    if (m / 10 < 10) {
      break;
    }
    m = m / 10;
    r++;
  }
  m = m % 10;
  return m;
}
long long ten(int n) {
  if (n == 0) {
    cout << "n 0" << endl;
    return 1;
  }
  long long x = 1;
  for (int i = 0; i < n; ++i) {
    x *= 10;
  }
  return x;
}
int main() {
  int K;
  cin >> K;
  int x = 1;
  cout << x << endl;
  if (K == 1) {
    return 0;
  }
  for (int i = 0; i < K - 1; ++i) {
    if (maxKeta(x) == 1) {
      if (maxKetaNumber(x) == 9) {
        x += 10;
        cout << x << endl;
      } else {
        x++;
        cout << x << endl;
      }
    } else if (maxKeta(x) == 2) {
      if (maxKetaNumber(x) == 9) {
        x += 100;
        cout << x << endl;
      } else {
        x += 10;
        cout << x << endl;
      }
    } else if (maxKeta(x) == 3) {
      if (maxKetaNumber(x) == 9) {
        x += 100;
        cout << x << endl;
      } else {
        x += 100;
        cout << x << endl;
      }
    } else {
      if (maxHitsuMaeKetaNumber(x) != 9) {
        x += ten(maxKeta(x) - 2);
        cout << x << endl;
      } else {
        x += ten(maxKeta(x) - 1);
        cout << x << endl;
      }
    }
  }
  return 0;
}
