#include #include using namespace std; using ll = long long; #define rep(i, s, t) for (ll i = s; i < (ll)(t); i++) template bool chmin(T &x, T y) { return x > y ? (x = y, true) : false; } template bool chmax(T &x, T y) { return x < y ? (x = y, true) : false; } struct io_setup { io_setup() { ios::sync_with_stdio(false); std::cin.tie(nullptr); cout << fixed << setprecision(15); } } io_setup; using mint = atcoder::modint1000000007; int main(){ int n,m; cin>>n>>m; vector a(n); rep(i,0,n) cin>>a.at(i); set st; rep(i,1,n) st.insert(a.at(i)); auto cst=st; vector b; while(!st.empty()){ int nw=*st.begin(); for(int i=nw;i<=m;i+=nw){ if(!cst.count(i)){ cout<<"-1\n"; return 0; } st.erase(i); } b.push_back(nw); } cout<