#include <iostream>
#include <map>
#include <vector>
using namespace std;

map<int, int> pogodci;
vector<int> zamene;

void Unos(int n)
{
	int pogodak;
	for (int i = 0; i < n; i++)
	{
		cin >> pogodak;
		pogodci[pogodak]++;
	}
}

int ProveriPolja(int n, int k)
{
	int broj_zamena = 0;
	for (auto itr = pogodci.begin(); itr != pogodci.end(); itr++)
	{
		if ((*itr).second >= k) 
		{
			broj_zamena++;
			zamene.push_back((*itr).first);
		}
	}
	return broj_zamena;
}

int main() 
{
	int n;
	cin >> n;
	int k;
	cin >> k;

	Unos(n);

	cout << ProveriPolja(n, k) << endl;
	for (int zamena: zamene)
	{
		cout << zamena << " ";
	}
	return 0;
}