#include <bits/stdc++.h>
using namespace std;
template <class c>
struct rge {
  c b, e;
};
template <class c>
rge<c> range(c i, c j) {
  return rge<c>{i, j};
}
template <class c>
auto dud(c* x) -> decltype(cerr << *x, 0);
template <class c>
char dud(...);
struct debug {
  template <class c>
  debug& operator<<(const c&) {
    return *this;
  }
};
int n;
bool good(int x) {
  int res = x;
  while (x > 0) {
    res += x % 10;
    x /= 10;
  }
  return (res == n);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  vector<int> ans;
  for (int m = n; m >= max(1, n - 100000); m--) {
    if (good(m)) {
      ans.emplace_back(m);
    }
  }
  int len = ans.size();
  sort(ans.begin(), ans.end());
  cout << len << '\n';
  for (int i = 0; i < len; i++) {
    cout << ans[i] << (i == len - 1 ? '\n' : ' ');
  }
  return 0;
}
