#include using namespace std; // TLEするコード int main() { int N, M; scanf("%d",&N,&M); int A[N]; for(int i = 0; i < N; i++) scanf("%d",&A[i]); sort(A,A+N); vector B; for(int i = 1; i < N; i++) { for(int j = A[i]; j <= M; j += A[i]) { if(!binary_search(A, A+N, j)) { printf("-1\n"); return 0; } } bool ret = true; for(int j=0;j<(int)(B.size());j++){ if(B[j]>(A[i]/2)) break; if(A[i]%B[j]==0){ ret=false; } } if(ret) B.emplace_back(A[i]); } printf("%d\n",(int)(B.size())); for(int i = 0; i < (int)B.size(); i++) { printf("%d ",B[i]); } printf("\n"); }