#include <bits/stdc++.h>
using namespace std;
using lli = long long;
using ld = long double;
mt19937 rnd(time(nullptr));
inline void Solve() {
  lli n = 0, m = 0;
  cin >> n >> m;
  vector<lli> data(n);
  for (auto &it : data) cin >> it;
  data.push_back(0);
  data.push_back(1e9 + 1);
  n += 2;
  sort(data.begin(), data.end());
  vector<lli> result;
  for (lli i = 1; i < n; i++) {
    if (m < 0) break;
    for (lli j = data[i - 1] + 1; j <= data[i] - 1; j++) {
      if (m < 0) break;
      if (m - j >= 0) {
        result.push_back(j);
      }
      m -= j;
    }
  }
  cout << result.size() << '\n';
  for (auto it : result) cout << it << ' ';
}
signed main() {
  cout << fixed << setprecision(20);
  Solve();
  return 0;
}
