#include <bits/stdc++.h>

#define fr      first
#define sc      second
#define int     long long
#define no      cout << "NO\n"
#define yes     cout << "YES\n"
#define all(x)  x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define sum(x)  accumulate(x.begin(), x.end(), 0LL)

using namespace std;

long long max(long long a, long long b){
    if(a>b) return a;
    else return b;
}

long long min(long long a, long long b){
    if(a>b) return b;
    else return a;
}

long long fac(long long p, long long n){
    if(n<2) return p;
    else{
        fac(p*n, n-1);
    }
}

bool IsPrime(int n){
    if(n%2==0 and n!=2 or n==1) return false;
    int o=sqrt(n)+1;
    for(int i=3; i<o; i+=2){
        if(n%i==0) return false;
    }
    return true;
}


void Run_Solution(){
    long double n=0, m=0, k=0, p=0, l=0, r=0, c=0;
    string s="", t="";
    bool f=1, o=0;
    char w;

    cin >> n >> m;
    map<int, int> mp;
    for(int i=0; i<m; i++){
        cin >> p;
        mp[p]++;
    }
    p=0;
    for(auto i: mp){
        if(i.sc==n) p++;
    }
    cout << p << '\n';
    for(auto i: mp){
        if(i.sc==n) cout << i.fr << ' ';
    }
    cout << '\n';
}

/*

*/

main(){
//    fflush(stdout);
//    freopen("input.txt", "r", stdin);
//    freopen("output.txt", "w", stdout);
    ios_base:: sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    int t=1;
//    cin >> t;

    while(t--) Run_Solution();
    return 0;
}
