#include <iostream>

using namespace std;

int main()
{
    long long int n,k;
    long long int brojac = 0;
    long long int t,pom;

    cin >> n >> k;

    long long int a[n];
    long long int aBezDup[n];
    long long int nb = n;
    for(long long int i=0;i<n;++i)
    {
        cin >> a[i];
    }

    ///Kopiranje
    for(long long int i=0;i<n;++i)
    {
        aBezDup[i] = a[i];
    }

    ///Izbacivanje
    for(long long int i=0;i<nb;i++)
    {
        for(long long int j=i+1;j<nb;)
        {
            if(aBezDup[i] == aBezDup[j])
            {
                for(long long int d=j;d<n;d++)
                {
                    aBezDup[d] = aBezDup[d+1];
                }
                nb--;
            }
            else
            {
                j++;
            }
        }
    }

    unsigned long long int ponavljanja[nb];

    ///Broj ponavljanja
    for(long long int i=0;i<nb;i++)
    {
        int counter = 0;
        for(long long int j=0;j<n;j++)
        {
            if(aBezDup[i] == a[j])
            {
                counter++;
            }
        }
        ponavljanja[i] = counter;
    }

    ///Broj brojeva koji se ponavljanju vise najmanje k puta
    for(long long int i=0;i<nb;i++)
    {
        if(ponavljanja[i] >= k)
        {
            brojac++;
        }
    }
    cout << brojac << endl;
    ///Brojevi koji se ponavljaju najmanje k puta
    for(long long int i=0;i<nb;i++)
    {
        if(ponavljanja[i] >= k)
        {
            cout << aBezDup[i] << " ";
        }
    }

    return 0;
}