#include <stdio.h>
//#include <vector>
#include<algorithm>
using namespace std;

int main()
{
    int *a;
    int n, k;
    scanf("%d%d", &n, &k);
    a = new int[n];

    for(int i = 0; i < n; i++)
        scanf("%d", &a[i]);

    sort(a, a + n);

    int zameniti = 0;

    //vector<int> indeks[2*n+1];
    int *indeks;

    indeks = new int[2*n+1];
    int p=0;
    int k1 = 1;

    if(k == 1){
        zameniti = 1;
        indeks[p] = a[0];
        p++;
       for(int i =0; i < n-1; i++){
           if(a[i] != a[i + 1] && a[i + 1] <= n-1){
            zameniti++;
            indeks[p] = a[i+1];
            p++;
            }


        }
        if(a[n-2] != a[n-1] && n != 1){
            zameniti++;
            indeks[p] = a[n-1];
            p++;
        }
    }

    else{
         for(int i  = 0; i < n; i++){
            if(a[i] == a[i + 1]){ //&& a[i + 1] <= n-1){
                k1++;
                if(k1 == k){
                    zameniti++;
                    indeks[p] = a[i];//!
                 //indeks.push_back(a[i]);
                    p++;//!
                }
            }
            else
                k1 = 1;

    }

    }


    printf("%d\n", zameniti);
    for(int i = 0; i < zameniti; i++)
        printf("%d ", indeks[i]);
    //for(int i = 0; i < indeks.size() ; i++)
      //  printf("%d ", indeks[i]);

    return 0;

}