#include using namespace std; #define rep(i, n) for (int i = 0; i < (int)n; i++) int main() { int n, m; cin >> n >> m; map mp; rep(i, n) { int a; cin >> a; mp[a]++; } vector b; bool ans = true; for (map::iterator it = mp.begin(); it != mp.end(); it++) { int key = it->first; if (key == 0) continue; if (mp[key] == 1) { b.push_back(key); for (int i = 1; i * key <= m; i++) { if (mp[i * key] == 0) ans = false; else mp[i * key]++; } } } if (ans) { cout << (int)b.size() << endl; for (int i : b) cout << i << " "; cout << endl; } else cout << -1 << endl; return 0; }