#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int a[maxn], cnt[maxn];
int main() {
  int n, p;
  scanf("%d%d", &n, &p);
  for (int i = 0; i < n; i++) scanf("%d", a + i);
  sort(a, a + n, greater<int>());
  int s = n, e = a[n - p];
  for (int i = 0; i < n; i++) s = min(s, n - i - a[i]);
  s = max(-s + 1, 1);
  if (s < e)
    for (int i = 0; i < n - p; i++) cnt[(n - i - a[i] + s) % p]++;
  int tot = 0, ans = 0;
  for (int i = e - 1; i >= s; i--) {
    int t = (p - (i - s) % p) % p;
    if (!cnt[t]) {
      ans = i;
      break;
    }
  }
  printf("%d\n", max(ans - s + 1, 0));
  if (ans) printf("%d", s);
  for (int i = s + 1; i <= ans; i++) printf(" %d", i);
  return 0;
}
