#include <bits/stdc++.h>
using namespace std;
int quick_pow(int a, int b, int MOD) {
  a %= MOD;
  int res = 1;
  while (b) {
    if (b & 1) res = (res * a) % MOD;
    b /= 2;
    a = (a * a) % MOD;
  }
  return res;
}
const int maxn = 100000 + 10;
int a[maxn];
vector<int> ans;
int main() {
  int i, j, n, m;
  while (scanf("%d%d", &n, &m) != EOF) {
    for (i = 1; i <= n; i++) scanf("%d", &a[i]);
    sort(a + 1, a + n + 1);
    a[n + 1] = 1e9 + 10;
    int res = 0, now = 1;
    int sum = 0;
    ans.clear();
    i = 1;
    while (m > 0) {
      if (now == a[i]) {
        now++;
        i++;
      } else {
        if (m < now) break;
        res++;
        ans.push_back(now);
        m -= now;
        now++;
      }
    }
    printf("%d\n", (res));
    for (i = 0; i < ans.size(); i++) printf("%d ", ans[i]);
    puts("");
  }
  return 0;
}
