#include <bits/stdc++.h>   using namespace std;   int a[300000];   int ans[300000];   map<int, int> m;   int gcd(int a, int b) {     if (b == 0)       return a;     else       return gcd(b, a % b);   }   int main() {     int n;     scanf( %d , &n);     for (int i = 0; i < n * n; i++) {       scanf( %d , &a[i]);       m[a[i]]++;     }     sort(a, a + n * n);     int k = 0;     for (int i = n * n - 1; i >= 0; i--) {       if (m[a[i]] > 0) {         ans[k++] = a[i];         for (int j = 0; j < k; j++) {           m[gcd(a[i], ans[j])] -= 2;         }       }     }     for (int i = 0; i < k - 1; i++) {       printf( %d  , ans[i]);     }     printf( %d , ans[k - 1]);     cout << endl;     return 0;   }   