#include <bits/stdc++.h>
using namespace std;
double dist_2point(double x1, double y1, double x2, double y2) {
  double d;
  d = sqrt(((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2)));
  return d;
}
long long ar[1000005] = {0};
int main() {
  long n, m;
  cin >> n >> m;
  {
    set<long> st;
    set<long>::iterator it;
    long p, a, k = 0;
    for (__typeof(1000100) i = 0; i < (1000100); i++) st.insert(i + 1);
    for (__typeof(n) i = 0; i < (n); i++) {
      cin >> a;
      st.erase(a);
    }
    for (it = st.begin(); it != st.end(); it++) {
      p = *it;
      if (m < p) break;
      ar[k++] = p;
      m -= p;
    }
    cout << k << endl;
    for (__typeof(k) i = 0; i < (k); i++) cout << ar[i] << " ";
  }
  return 0;
}
