#include <bits/stdc++.h>
using std::bitset;
using std::cerr;
using std::cin;
using std::cout;
using std::deque;
using std::endl;
using std::fixed;
using std::ios_base;
using std::make_pair;
using std::make_tuple;
using std::map;
using std::nth_element;
using std::pair;
using std::queue;
using std::reverse;
using std::set;
using std::sort;
using std::stack;
using std::string;
using std::tuple;
using std::unordered_map;
using std::unordered_set;
using std::vector;
struct __Timestamp {
  ~__Timestamp() {}
} __timestamp;
template <typename T>
void debug(T t) {}
template <typename T, typename... Args>
void debug(T t, Args... args) {}
int n;
int cnt[4], x;
vector<int> ans;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.precision(10);
  cout << fixed;
  cin >> n;
  for (int i = 0; i < n; ++i) {
    int a;
    cin >> a;
    if (a == 0) {
      ans.push_back(0);
    } else if (a == 100 && !cnt[0]) {
      ans.push_back(100);
      cnt[0]++;
    } else if (a > 0 && a < 100 && a % 10 == 0 && !cnt[1]) {
      ans.push_back(a);
      cnt[1]++;
    } else if (a > 0 && a < 10 && !cnt[2]) {
      ans.push_back(a);
      cnt[2]++;
    } else {
      cnt[3]++;
      x = a;
    }
  }
  if (!cnt[1] && !cnt[2] && cnt[3]) {
    ans.push_back(x);
  }
  sort(ans.begin(), ans.end());
  cout << ans.size() << '\n';
  for (int a : ans) cout << a << ' ';
  cout << '\n';
  return 0;
}
