#include <bits/stdc++.h>
using namespace std;
int main() {
  int typesAlreadyHas;
  int totalBudget;
  int temp;
  map<int, bool> hasMap;
  vector<int> typeVector;
  scanf("%d %d", &typesAlreadyHas, &totalBudget);
  for (register int i = 0; i < typesAlreadyHas; i++) {
    scanf("%d", &temp);
    hasMap[temp - 1] = true;
  }
  for (register int i = 1; i <= 1000000000; i++) {
    if (totalBudget - i < 0)
      break;
    else if (hasMap[i - 1] == true)
      continue;
    totalBudget -= i;
    typeVector.push_back(i);
  }
  printf("%d\n", typeVector.size());
  for (vector<int>::iterator itr = typeVector.begin(); itr != typeVector.end();
       ++itr) {
    printf("%d ", *itr);
  }
  return 0;
}
