#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void Swap(int *xp, int *yp){
    int temp = *xp;
    *xp = *yp;
    *yp = temp;
}

void BubbleSort(int niz[], int n){
    int i, j;
    for (i = 0; i < n-1; i++){
        for (j = 0; j < n-i-1; j++){
            if (niz[j] > niz[j+1]){
                Swap(&niz[j], &niz[j+1]);
            }
        }
    }
}

int main()
{
    int n,k,i,h=1,b,a,niz[1000],nizovi[1000];
    do{
       scanf("%d %d",&n,&k);
    }while (n < 1 || k > pow(10,6));
    for(i=0; i<n; i++){
        scanf("%d",&niz[i]);
    }
    BubbleSort(niz,n);
    nizovi[0] = NULL;
    for(i=0; i<n; i++){
        a = 1;
        for(b=1; b<n; b++){
            if(niz[i] == niz[i+1]){
                a++;
            }
        }
        if(a>=k){
            if(nizovi[h-1] != niz[i]){
                nizovi[h] = niz[i];
                h++;
            }
        }
    }
    printf("\n%d\n",h-1);
    for(i=1; i<h; i++){
        printf("%d ",nizovi[i]);
    }
}