#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned int ui; const ll mod = (ll)(1e+9) + 7; const ll INF = (ll)1000000007 * 1000000007; typedef pair P; #define stop char nyaa;cin>>nyaa; #define rep(i,n) for(int i=0;i=0;i--) #define Rep(i,sta,n) for(int i=sta;i=1;i--) #define Rep1(i,sta,n) for(int i=sta;i<=n;i++) typedef long double ld; typedef complex Point; const ld eps = 1e-8; const ld pi = acos(-1.0); typedef pair LP; typedef pair LDP; ll a[1 << 14]; bool used[1 << 14]; ll gcd(ll x, ll y) { if (x < y)swap(x, y); while (y) { ll r = x % y; x = y; y = r; } return x; } ll lcm(ll x, ll y) { return x * y / gcd(x, y); } int main(){ int n; cin >> n; rep(i, n) { cin >> a[i]; } used[0] = true; vector ans; ans.push_back(a[0]); ll memo = a[0]; rep(aa, n - 1) { int chk = -1; ll mi = INF; ll mi2 = mod; rep(i, n) { if (used[i])continue; ll l = lcm(memo, a[i]); if (l < mi) { mi = l; mi2 = a[i]; chk = i; } else if (l == mi&&a[i] 0)cout << " "; cout << ans[i]; } cout << endl; return 0; }