#include <bits/stdc++.h>
using namespace std;
const int dir[5][2] = {0, 1, 0, -1, 1, 0, -1, 0, 0, 0};
const int inf = 0x7fffffff;
const int mod = 1000000;
const int Max = 1000000;
int temp[10], ans[Max];
void check(char *s) {
  int index = 0, dec, sum = 0, cnt = 0;
  dec = atoi(s);
  memset(temp, 0, sizeof(temp));
  for (int i = 0; i < strlen(s); ++i) sum += s[i];
  for (int i = max((dec - sum), 0); i <= dec; ++i) {
    int temp = i, t = i;
    while (temp) {
      t += (temp % 10);
      temp /= 10;
    }
    if (t == dec) {
      ans[cnt++] = i;
    }
  }
  printf("%d\n", cnt);
  for (int i = 0; i < cnt; ++i) {
    printf("%d%c", ans[i], i == cnt - 1 ? '\n' : ' ');
  }
}
int main() {
  char num[10];
  scanf("%s", num);
  check(num);
  return 0;
}
