#include<bits/stdc++.h>
using namespace std;
const int MaxN=1e5;
const int MaxM=1e5;
vector<int> pd[MaxM+1];// PrimeDivisor
bool tag[MaxM+1]={};
int main(){
for(int m=1; 2*m<=MaxM; m++)
pd[2*m].push_back(2);
for(int m=3; m<=MaxM; m++){
if( !pd[m].empty() ) // 只需要關注質因數
continue;
for(int p=1; m*p<=MaxM; p++)
pd[m*p].push_back(m);
}
// main
int N, M, v;
cin>>N>>M;
for(int n=0; n<N; n++){
cin>>v;
for(int prime: pd[v]){
if( tag[prime] )
continue;
for(int p=1; prime*p<=M; p++)
tag[ prime*p ]=1;
}
}
int ans=0;
for(int m=1; m<=M; m++)
ans+= tag[m]==0;
cout<<ans<<"\n";
for(int m=1; m<=M; m++)
if(tag[m]==0)
cout<<m<<"\n";
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApjb25zdCBpbnQgTWF4Tj0xZTU7CmNvbnN0IGludCBNYXhNPTFlNTsKdmVjdG9yPGludD4gcGRbTWF4TSsxXTsvLyBQcmltZURpdmlzb3IKYm9vbCB0YWdbTWF4TSsxXT17fTsKIAppbnQgbWFpbigpewoJZm9yKGludCBtPTE7IDIqbTw9TWF4TTsgbSsrKQoJCXBkWzIqbV0ucHVzaF9iYWNrKDIpOwoJZm9yKGludCBtPTM7IG08PU1heE07IG0rKyl7CgkJaWYoICFwZFttXS5lbXB0eSgpICkgLy8g5Y+q6ZyA6KaB6Zec5rOo6LOq5Zug5pW4CgkJCWNvbnRpbnVlOwoJCWZvcihpbnQgcD0xOyBtKnA8PU1heE07IHArKykKCQkJcGRbbSpwXS5wdXNoX2JhY2sobSk7Cgl9CgkvLyBtYWluCglpbnQgTiwgTSwgdjsKCWNpbj4+Tj4+TTsKCWZvcihpbnQgbj0wOyBuPE47IG4rKyl7CgkJY2luPj52OwoJCWZvcihpbnQgcHJpbWU6IHBkW3ZdKXsKCQkJaWYoIHRhZ1twcmltZV0gKQoJCQkJY29udGludWU7CgkJCWZvcihpbnQgcD0xOyBwcmltZSpwPD1NOyBwKyspCgkJCQl0YWdbIHByaW1lKnAgXT0xOwoJCX0KCX0KCWludCBhbnM9MDsKCWZvcihpbnQgbT0xOyBtPD1NOyBtKyspCgkJYW5zKz0gdGFnW21dPT0wOwoJY291dDw8YW5zPDwiXG4iOwoJZm9yKGludCBtPTE7IG08PU07IG0rKykKCQlpZih0YWdbbV09PTApCgkJCWNvdXQ8PG08PCJcbiI7Cn0=