#include <iostream>
#include<vector>
using namespace std;
vector<long long> vec;
long long n,m;
long long a[1000010];
long long MOD=1e9 + 7;
long long Read(){
long long flag=1,x=0;
char ch;
ch=getchar();
for(;ch<'0'||ch>'9';ch=getchar()){
if(ch=='-'){
flag=-1;
}
}
for(;ch>='0'&&ch<='9';ch=getchar()){
x=((x*10)%MOD+ch-'0')%MOD;
}
return flag*x;
}
bool check(int xx){
long long x=1;
long long sum=0;
for(int i=0;i<=n;i++){
sum=(sum+(a[i]*x)%MOD)%MOD;
x=x*xx%MOD;
}
if(sum==0){
return true;
}
return false;
}
int main(){
cin>>n>>m;
for(int i=0;i<=n;i++){
a[i]=Read();
}
for(int i=1;i<=m;i++){
if(check(i)){
vec.push_back(i);
}
}
cout<<vec.size();
cout<<endl;
for(int i=0;i<vec.size();i++){
cout<<vec[i]<<endl;
}
return 0;
}
70分三个TLE