#include <stdio.h>
#include <stack>
#define MAX 10000

using namespace std;

long int k;
long int br;
int niz[MAX];
int pomNiz[MAX];
int a[MAX];

void setNiz(int n)
{
    int i = 0;
    int j = 2*n;
    int pom = n;
    while(i < n && j > n)
    {
        niz[i++] = -pom;
        niz[j--] = pom;
        --pom;
    }
}

void setPomNiz(int n)
{
    for(int i = 0; i < n; ++i)
    {
        for(int j = 0; j <= 2*n; ++j)
        {
            if(a[i] == niz[j])
            {
                pomNiz[j] += 1;
                break;
            }
        }
    }
}

void pronadji(int n)
{
    stack <int> s;
    int br = 0;
    for(int i = 0; i < 2*n; ++i)
    {
        if(pomNiz[i] >= k)
        {
            ++br;
            s.push(niz[i]);
        }
    }

    printf("%i\n", br);
    while (!s.empty())
    {
        printf("%i ", s.top());
        s.pop();
    }
}

int main()
{
    int n;
    int i = 0;
    scanf("%i %li", &n, &k);
    setNiz(n);
    for(i = 0; i < n; ++i)
    {
        scanf("%i", &a[i]);
    }
    setPomNiz(n);
    pronadji(n);

}