// package Quarantine;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.StringTokenizer;
import java.util.TreeMap;

public class GCDTable {
    public static void main(String[] args)throws IOException {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        int n=Integer.parseInt(br.readLine());
        TreeMap<Integer,Integer> map=new TreeMap<>();
        StringTokenizer st=new StringTokenizer(br.readLine());
        for(int i=1;i<=n*n;i++){
            int x=Integer.parseInt(st.nextToken());
            map.put(x,map.getOrDefault(x,0)+1);
        }
        ArrayList<Integer> ans=new ArrayList<>();
        StringBuilder print=new StringBuilder();
        while(ans.size()!=n){
            int num=map.lastKey();
            if(map.get(num)==1){
                map.remove(num);
            }
            else{
                map.put(num,map.get(num)-1);
            }
            for(int x:ans){
                int g=gcd(num,x);
                if(map.get(g)==2){
                    map.remove(g);
                }
                else{
                    map.put(g,map.get(g)-2);
                }
            }
            ans.add(num);
            print.append(num+" ");
        }
        System.out.println(print.toString());
    }
    public static int gcd(int a,int b){
        if(b==0){
            return a;
        }
        return gcd(b,a%b);
    }
}
