#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->dat[++q->rear]=value;
    }
    void display(struct Queue q){
        for(int i=q.front;i<=q.rear;i++){
            printf("%d  ",q.dat[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;
}