import java.util.*;

public class Main{

    public static int gcd(int a, int b) {
        if (b == 0) return a;
        return gcd(b, a % b);
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();

        TreeMap<Integer, Integer> map = new TreeMap<Integer, Integer>();

        for (int i = 0; i < n*n; i++) {
            int a = in.nextInt();
            if (map.containsKey(a)) map.put(a, map.get(a) + 1);
            else map.put(a, 1);
        }

        Set<Integer> set = map.keySet();
        List<Integer> res = new ArrayList<Integer>();
        for (Integer ii : set) res.add(ii);

        List<Integer> ans = new ArrayList<Integer>();

        for (int j = res.size() - 1; j >= 0; j--) {
            int jj = res.get(j);
            while (map.get(jj) > 0) {
                map.put(jj, map.get(jj) - 1);
                for (Integer k : ans) {
                    int g = gcd(jj, k);
                    map.put(g, map.get(g) - 2);
                }
                ans.add(jj);
            }
        }

        for (Integer l : ans) System.out.print(l + " ");
    }
}