#include <bits/stdc++.h>
using namespace std;
int k, m;
set<int> ans;
void go(int x) {
  set<int> s, t;
  int l = x, r = 0;
  for (int d = 1, i = 0; i < 4; i++, d *= 10) {
    for (int y : t) {
      s.insert(l % 10 + y);
      s.insert(l % 10 - y);
      s.insert(l % 10 * y);
    }
    r = (l % 10) * d + r;
    l /= 10;
    s.insert(r);
    t.swap(s);
    s.clear();
  }
  for (int y : t) {
    int dif = abs(k - y);
    if (dif < 10000) s.insert(dif);
  }
  for (int dif : s) {
    ans.insert(dif * 10000 + x);
    ans.insert(x * 10000 + dif);
  }
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> k >> m;
  for (int i = 0; (int)ans.size() < m and i < 10000; i++) go(i);
  assert((int)ans.size() >= m);
  while ((int)ans.size() > m) ans.erase(ans.begin());
  for (int x : ans) printf("%08d\n", x);
  return 0;
}
