#include <bits/stdc++.h>
using namespace std;
const int INF = int(1e9);
const double EPS = 0.0000000001, PI = 3.14159265358979323;
map<int, bool> have;
int main() {
  int n, k;
  vector<int> res;
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; ++i) {
    int a;
    scanf("%d", &a);
    have[a] = true;
  }
  for (int i = 1; i <= int(1e9); ++i) {
    if (k >= i && !have[i]) {
      k -= i;
      res.push_back(i);
    }
    if (k < i) break;
  }
  cout << int(res.size()) << endl;
  for (int i = 0; i < int(res.size()); ++i) {
    cout << res[i] << " ";
  }
  return 0;
}
