#include<stdio.h>
#define MAX 20
struct Queue{
    int dat[MAX];
    int front;
    int rear;
};
int isPrime(int num){
    if(num<=1)
        return 0;
        for(int i=2;i*i<=num;i++){
            if(num%i==0){
                return 0;
            }
            return 1;
        }
        void enqueue(struct Queue *q,int value){
            q->data[++q->rear]=value;
        }
        void display(struct Queue q){
            for(int i=q.front;i<=q.rear;i++){
                printf("%d ",q.data[i]);
            }
        }
int main(){
    int n;
    struct Queue q;
    q.front=0;
    q.rear=1;
    scanf("%d",&n);
    if(n<=0){
        printf("Invalid input");
        return 0;
    }
    int arr[n];
    for(int i=0;i<n;i++){
        scanf("%d",&arr[i]);
    }
    for(int i=0;i<n;i++){
        if(isPrime(arr[i])){
            enqueue(&q,arr[i]);
        }
    }
    display(q);
    return 0;
}