#include <bits/stdc++.h>
using namespace std;
int a[10000], n, m;
void DFS(int x, int y, int z, int o) {
  if (x > 3) {
    y = abs(n - y);
    if (x != 4 || y >= 10000 || a[y] == o) return;
    printf("%04d%04d\n", o, y);
    a[y] = o;
    if (!(--m)) exit(0);
    return;
  }
  DFS(x + 1, y + z % 10, z / 10, o);
  DFS(x + 1, y - z % 10, z / 10, o);
  DFS(x + 1, y * (z % 10), z / 10, o);
  DFS(x + 2, y + z % 100, z / 100, o);
  DFS(x + 2, y - z % 100, z / 100, o);
  DFS(x + 2, y * (z % 100), z / 100, o);
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < 10000; i++) a[i] = 10000;
  for (int i = 0; i < 10000; i++)
    DFS(1, i % 10, i / 10, i), DFS(2, i % 100, i / 100, i);
  return 0;
}
