#include <bits/stdc++.h>
using namespace std;
long long n, m, p, a[100006];
int main() {
  long long i, j, k, t;
  scanf("%lld%lld", &n, &p);
  for (i = 1; i <= n; i++) {
    scanf("%lld", &a[i]);
  }
  long long l = 1, r = 1e9;
  sort(a + 1, a + 1 + n);
  for (i = 1; i <= n; i++) l = max(l, a[i] - i + 1);
  for (i = 1; i + p - 1 <= n; i++) r = min(r, a[i + p - 1] - i);
  if (l > r)
    printf("0\n");
  else {
    printf("%lld\n", r - l + 1);
    for (i = l; i <= r; i++) printf("%lld ", i);
    printf("\n");
  }
}
