#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int n, sum, cost = 0;
  cin >> n >> sum;
  long long int i, a[n];
  map<long long int, long long int> mymap;
  for (long long int i = 0; i < n; i++) {
    cin >> a[i];
    mymap[a[i]]++;
  }
  long long int max_limit = sum;
  set<long long int> s;
  for (long long int i = 1; i < max_limit + 1; i++) {
    if (mymap[i] == 0) {
      s.insert(i);
      cost += i;
      if (cost > sum) {
        int def = cost - sum;
        if (s.count(def)) {
          s.erase(def);
        } else {
          long long int deg = *s.upper_bound(def);
          s.erase(deg);
        }
        break;
      } else if (cost == sum) {
        break;
      }
    }
  }
  cout << s.size() << endl;
  for (auto it : s) {
    cout << (it) << " ";
  }
  return 0;
}
