#include <bits/stdc++.h>
using namespace std;
int g[250001];
int num[501];
map<int, int> M;
int cmp(int a, int b) { return a > b; }
int gcd(int m, int n) {
  while (m != 0 && n != 0) {
    if (m > n)
      m %= n;
    else
      n %= m;
  }
  return m == 0 ? n : m;
}
int main() {
  int n, i, j;
  cin >> n;
  for (i = 1; i <= n * n; i++) {
    cin >> g[i];
    if (!M.count(g[i])) M[g[i]] = 0;
    M[g[i]]++;
  }
  sort(g + 1, g + n * n + 1, cmp);
  int cnt;
  for (i = 1; i <= n * n; i++) {
    while (i < n * n && g[i + 1] == g[i]) {
      i++;
    }
    cnt = 0;
    for (j = 1; j <= num[0]; j++) {
      if (num[j] % g[i] == 0) {
        cnt++;
      }
    }
    for (j = 0; j <= sqrt(M[g[i]]); j++) {
      if (j * j + cnt * j * 2 == M[g[i]]) {
        break;
      }
    }
    int t;
    t = j;
    for (j = 1; j <= num[0]; j++) {
      M[gcd(num[j], g[i])] -= 2 * t;
    }
    for (j = 1; j <= t; j++) {
      num[0]++;
      num[num[0]] = g[i];
    }
  }
  for (i = 1; i <= num[0]; i++) {
    cout << num[i] << ' ';
  }
  cout << endl;
  return 0;
}
