#include<cstdio>
#include<vector>
#include<bitset>
#include<cstring>
#include<iostream>
using namespace std;
bitset<100000000> isprime;
int prime[10000000];
int gen_primes(int n){
int cnt=0;
for(int i=2;i<n;i++){
if(isprime[i]==1){
prime[cnt]=i;
cnt++;
}
for(int j=0;j<cnt;j++){
isprime[i*prime[j]]=0;
if(i%prime[j]==0)break;
}
}
return cnt;
}
int main(){
isprime.set();
isprime[1]=0;
isprime[0]=0;
memset(prime,0,sizeof(prime));
int n,q;
scanf("%d%d",&n,&q);
int len = gen_primes(n);
for(int i=0;i<q;i++){
int num;
scanf("%d",&num);
int j;
for(j=0;j<len;j++){
if(prime[j]==num)break;
}
if(j<len){
printf("%d ",num);
}
}
return 0;
}