#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline void gn(T &x) {
  x = 0;
  T f = 1;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (isdigit(ch)) {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  x *= f;
}
template <typename T>
inline void gt(T x) {
  if (!x) return;
  gt(x / 10);
  putchar(x % 10 + '0');
}
int t, n, m, ans, mmax;
int MOD = 1e9 + 7;
vector<int> v, f;
int cmp(pair<int, int> a, pair<int, int> b) {
  if (a.first != b.first)
    return a.first < b.first;
  else
    return a.second < b.second;
}
int main() {
  int i, j, k, l, r, c = 0, x, y;
  gn(n);
  for (i = 1; i <= n; i++) gn(x), f.push_back(x);
  for (auto s : f)
    if (s == 0) {
      v.push_back(s);
      break;
    }
  for (auto s : f)
    if (s == 100) {
      v.push_back(s);
      break;
    }
  for (auto s : f)
    if (s % 10 == 0 && s < 100 && s > 0) {
      v.push_back(s);
      c = 1;
      break;
    }
  for (auto s : f)
    if (s > 0 && s <= 9) {
      v.push_back(s);
      c = 1;
      break;
    }
  if (!c)
    for (auto s : f)
      if (s > 0 && s < 100) {
        v.push_back(s);
        break;
      }
  sort(v.begin(), v.end());
  printf("%d\n", v.size());
  for (auto s : v) printf("%d ", s);
  return 0;
}
