#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=0;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;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;
 }