#include using namespace std; using ll = long long; int main(){ ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; vector a(n), ans; for(auto &&v : a) cin >> v; sort(a.begin(), a.end()); auto f = [&](int v){ for(auto &&e : ans){ if(v % e == 0) return false; } return true; }; for(int i = 1; i < n; i++){ if(f(a[i])) ans.emplace_back(a[i]); } for(auto &&e : ans){ for(int i = e; i <= m; i += e){ if(!binary_search(a.begin(), a.end(), i)){ cout << -1 << '\n'; return 0; } } } cout << ans.size() << '\n'; for(int i = 0; i < ans.size(); i++){ cout << ans[i] << (i + 1 == ans.size() ? '\n' : ' '); } }