#include <iostream>
#include <vector>
using namespace std;
int main()
{
	int promenljiva=0,br=0;
	double n,k,j;
	cin>>n;
	cin>>k;
	vector<double>a(n);
	vector<double>nule(n);
	nule.assign (n,0);  
	for(int i=0;i<n;i++)
		cin>>a[i];
	for(int i=0;i<n-1;i++)
		for(int j=i+1;j<n;j++)
			if(a[i]<a[j]){int t=a[i];
	                       a[i]=a[j];
						   a[j]=t;}
	for(int i=0;i<n-1;i++)
{
		if(promenljiva>=1) i+=nule[i-1];
		for(int j=i+1;j<n;j++)
			if(a[i]==a[j]) nule[i]+=1;
		promenljiva++;
}
	
	for(int i=0;i<n;i++) if(nule[i]>=k-1) br+=1;
	vector<double>polja(br);
	j=0;
	for(int i=0;i<n;i++) if(nule[i]>=k-1) polja[j]=a[i],j++;
	cout<<br<<endl;
	for(int i=0;i<br;i++)
		cout<<polja[i]<<' ';
return 0;
}