#include <bits/stdc++.h>

using u32 = unsigned int;

int rhash(u32 x, u32 n)
{
	return x - n;
};

u32 hash(int x, u32 n)
{
	return n + x;
};


int main()
{
	u32 n, k;
	std::scanf("%u %u", &n, &k);
	
	u32 ponavljanja[2 * 1'000'000 + 1];
	
	for (int i = 0; i < 2 * n + 1; ++i)
		ponavljanja[i] = 0;
	
	u32 count = 0;
	for (int i = 0; i < n; ++i)
	{
		int val;
		std::scanf("%d", &val);
		++ponavljanja[hash(val, n)];
	}

	u32 l = 0, d = 2 * n;

	while (ponavljanja[l] < k)
	{
		++l;
		if (ponavljanja[d] < k)
			--d;
	}

	while (ponavljanja[d] < k)
		--d;

	for (int i = l; i < d + 1; ++i)
		if (ponavljanja[i] >= k)
			++count;
	std::printf("%d\n", count);

	for (int i = l; i < d + 1; ++i)
		if (ponavljanja[i] >= k)
			std::printf("%d ", rhash(i, n));

	return 0;	

}