#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int count(long long int arr[], int x, int n) 
{     
	long long int *low = lower_bound(arr, arr+n, x); 
	if (low == (arr + n) || *low != x) 
	    return 0;   
	long long int *high = upper_bound(low, arr+n, x);      
	return high - low; 
} 
main()
{
	long long int N;
	int K;
	scanf("%lld%d",&N,&K);
	long long int niz[N];
	int rez[N];
	int m=sizeof(niz)/sizeof(niz[0]);
	for(int i=0;i<N;i++)
		scanf("%lld",&niz[i]);	
	sort(niz,niz+m);
	int brojac=0;
	for(int i=0;i<N;i++)
	{
		if(niz[i]==niz[i+1])
		{
			rez[brojac]=0;
			brojac++;
		}
		else
		{
			rez[brojac]=count(niz,niz[i],m);
			brojac++;
		}
	}
	int duzina=sizeof(rez)/sizeof(rez[0]);
	int izbroj=0;
	int izbaci[duzina];
	brojac=0;
	for(int i=0;i<duzina;i++)
	{
		if(rez[i]>=K)
		{
			izbroj++;
			izbaci[brojac]=niz[i];
			brojac++;
		}
	}
	printf("%d\n",izbroj);
	for(int i=0;i<izbroj;i++)
		printf("%d ",izbaci[i]);
}