#include<stdio.h>
#define MAX 100
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.rea;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 inpuit");
        return 0;
    }
    int arr[n];
    for(int i=0;i<n;i++){
        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;
    }