#include #include #include using namespace std; int gcd(int a, int b){ return b == 0 ? a : gcd(b, a%b); } int main(){ int n; cin >> n; int now; cin >> now; vector v(1, now); multiset s; int x; for(int i = 1; i < n; i++) cin >> x, s.insert(x); while(!s.empty()){ int tmp = 1<<30, take; for(int x : s){ if(x > tmp) break; int lcm = now*x/gcd(now,x); if(tmp > lcm){ tmp = lcm; take = x; } } v.push_back(take); s.erase(s.find(take)); now = take; } for(int i = 0; i < n; i++) cout << v[i] << " \n"[i==n-1]; return 0; }