using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] p_linija = Console.ReadLine().Split();
            int N = int.Parse(p_linija[0]);
            int K = int.Parse(p_linija[1]);
            int[] pogodjeni = new int[N];
            string[] d_linija = Console.ReadLine().Split();
            for (int i = 0; i < N; i++)
                pogodjeni[i] = int.Parse(d_linija[i]);
            Array.Sort(pogodjeni);
            int[] ponovljeni = new int[N / 2];
            int n = 0;
            for (int i = 0; i < pogodjeni.Length; i++)
            {
                int provera = pogodjeni[i];
                int l = 0;
                for (int j = i; j < pogodjeni.Length; j++)
                {
                    if (provera != pogodjeni[j])
                        break;
                    else
                        l++;
                    if (l == K)
                    {
                        ponovljeni[n] = provera;
                        n++;
                    }
                    if (l > K)
                        i = j;
                }
            }
            Array.Resize(ref ponovljeni, n);
            Console.WriteLine(n);
            for (int i = 0; i < ponovljeni.Length; i++)
                Console.Write(ponovljeni[i] + " ");
            Console.WriteLine();
        }

    }
}