#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline void ckmax(T& x, T y) {
  x = (y > x ? y : x);
}
template <typename T>
inline void ckmin(T& x, T y) {
  x = (y < x ? y : x);
}
int main() {
  int n, m;
  cin >> n >> m;
  map<int, bool> mp;
  for (int i = 1; i <= n; ++i) {
    int a;
    cin >> a;
    mp[a] = 1;
  }
  int cur_cost = 0;
  vector<int> ans;
  for (int i = 1; cur_cost + i <= m; ++i) {
    if (!mp.count(i)) {
      cur_cost += i;
      ans.push_back(i);
    }
  }
  cout << ((int)(ans).size()) << endl;
  for (int i = 0; i < ((int)(ans).size()); ++i) {
    cout << ans[i] << " \n"[i == ((int)(ans).size()) - 1];
  }
  return 0;
}
