#include <bits/stdc++.h>

using namespace std;

#define MAX_N 1000000

int levo[MAX_N + 1];
int desno[MAX_N + 1];
int bacanja[MAX_N];



int main()
{
    int N, K;
    vector<int> zameni;
    scanf("%d %d", &N, &K);

    for(int i = 0; i < N; i++){
        scanf("%d", bacanja + i);
    }

    for(int i = 0; i < N; i++){
        int bacanje = bacanja[i];
        if(bacanje < 0){
            ++levo[bacanje * (-1)];
        }else{
            ++desno[bacanje];
        }
    }

    levo[0] = 0;
    int brojZamenjenih = 0;

    for(int i = 0; i <= N; i++){
        if(levo[i] >= K){
            ++brojZamenjenih;
        }

        if(desno[i] >= K){
            ++brojZamenjenih;
        }
    }

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

    for(int i = 0; i <= N; i++){

        //printf("%d %d %d\n", i, levo[i], desno[i]);
        if(levo[i] >= K){
            printf("%d ", i * (-1));
        }

        if(desno[i] >= K){
            printf("%d ", i);
        }
    }
    return 0;
}