#include<bits/stdc++.h>
#define f(i,a,b) for(int i = a ; i<=b ; i++)
#define MAXN 100005
#define MAXM 1000000
#define MAXP 105
#define P2 10007
#define P1 100000007
using namespace std;
string s;
int ans[MAXN];
long long a[2][MAXP];
bool g[MAXM];
int m,n,cnt;
int MOD(string s,int k){
int ans = 0,len,sig = 1,i;
len = s.size();
i = 0;
if(s[0] == '-') sig = -1,i = 1;
else if(s[0] == '+') i++;
for( ;i<len ; i++) ans = (ans*10+(s[i]-'0'))%k;
return sig*ans;
}
int qinjiushao_agm(long long a[],int n,int x,int p){
long long v = 0;
for(int i = n ; i>=0 ; i--) v = (v*x+a[i])%p;
return v;
}
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
memset(g,0,sizeof(g));
cin>>n>>m;
f(i,0,n){
cin>>s;
a[0][i] = MOD(s,P1);
a[1][i] = MOD(s,P2);
}
f(x,1,m){
if(!g[x]) if(qinjiushao_agm(a[1],n,x,P2)) for(int i = x+P2 ; i<=m ; i+=P2) g[x] = 1;
else if(!qinjiushao_agm(a[0],n,x,P1)) ans[++cnt] = x;
}
cout<<cnt<<endl;
f(i,1,cnt) cout<<ans[i]<<endl;
return 0;
记录