#include <cstdio>
#include <vector>

#define OFFSET 1000005

using namespace std;

static int input[2000050];
static bool proveren[2000050];

int main()
{
    int n, k;
    scanf("%d %d", &n, &k);
    vector<int> niz;
    int a, br=0;
    for(int i = 0; i<n; i++)
    {
        scanf("%d", &a);
        input[a+OFFSET]++;
        if(!proveren[a+OFFSET])
        {
            if(input[a+OFFSET]>=k)
            {
                niz.push_back(a);
                proveren[a+OFFSET]=true;
                br++;
            }
        }
    }

    printf("%d\n", br);

    for(int i = 0; i<br; i++)
        printf("%d ", niz[i]);
    return 0;
}