#include <bits/stdc++.h>
using namespace std;
int main()
{
//generate prime sieve
vector primes;
primes.push_back(2);
primes.push_back(3);
for(int i = 5; i <= 10000; i++)
{
int no = 0;
for(int j = 2; j*j <= i; j++)
{
if(i%j == 0)
no = 1;
}
if(!no)
primes.push_back(i);
}
int n,q;
cin>>n>>q;
stack<int> a1,b1;
stack<int> s;
for(int i=0;i<n;i++){
    int x;
    cin>>x;
    s.push(x);
}
for(int i=0;i<q;i++){
    if(s.empty()) break;
    int ithprime=primes[i];
    while(s.empty()==false){
        int ce=s.top();
        s.pop();
        if(ce%ithprime == 0){
            b1.push(ce);
        }
        else{
            a1.push(ce);
        }
    }
}
while(!b1.empty())
    {
        cout<<b1.top()<<endl;
        b1.pop();
    }
    s = a1;
while(!a1.empty()){
        a1.pop();
}
while(!s.empty())
{
    cout<<s.top()<<endl;
    s.pop();
}
return 0; 
}
