#include<bits/stdc++.h>
#define int long long
using namespace std;
int n, m, mod[5] = {0, 19491001, 19260817, 998244353, 99991}, use[1000005][5], ans[2000005], tot;
inline void read(int now){
char ch = getchar(); int x = 0; bool f = false;
while((ch > '9' or ch < '0') and ch != '-') ch = getchar();
if(ch == '-') f = true, ch = getchar();
while(ch >= '0' and ch <= '9'){
for(int i = 1; i <= 2; i++) use[now][i] =(((use[now][i] << 3) + (use[now][i] << 1) + ch - 48) % mod[i]);
ch = getchar();
}
for(int i = 1; i <= 2; i++){
use[now][i] *= (f?-1:1);
}
return;
}
bool check(int x){
for(int i = 1; i <= 2; i++){
int now = use[n][i];
for(int j = n - 1; j >= 0; j--) now = (now * x + use[j][i]) % mod[i];
if(now != 0) return false;
}
return true;
}
inline int rd(){
char ch = getchar(); bool f = false;int x = 0;
while((ch > '9' or ch < '0') and ch != '-') ch = getchar();
if(ch == '-') f = true, ch = getchar();
while(ch >= '0' and ch <= '9') x = x * 10 + ch - 48, ch = getchar();
return f?-x:x;
}
signed main(){
n = rd(), m = rd();
for(int i = 0; i <= n; i++) read(i);
for(int i = 1; i <= m; i++){
if(check(i) == true) ans[++tot] = i;
}
printf("%lld\n", tot);
for(int i = 1; i <= tot; i++) printf("%lld\n", ans[i]);
return 0;
}