#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, m;
  cin >> n >> m;
  bool used[2000010];
  long long x;
  memset(used, 0, sizeof(used));
  for (long long i = 0; i < n; i++) {
    cin >> x;
    if (x > 1000000) continue;
    used[x] = 1;
  }
  vector<int> v;
  for (long long i = 1; i < 1000000000; i++) {
    if (!used[i] && m >= i) {
      v.push_back(i);
      m -= i;
    } else if (m < i)
      break;
  }
  cout << v.size() << endl;
  for (long long i = 0; i < v.size(); i++) cout << v[i] << ' ';
  return 0;
}
