#include typedef long long ll; typedef unsigned long long ull; #define FOR(i,a,b) for(int (i)=(a);i<(b);i++) #define REP(i,n) FOR(i,0,n) #define RANGE(vec) (vec).begin(),(vec).end() using namespace std; template T gcd(T a, T b) { if ( a < b ) std::swap(a,b); if ( b == 0 ) return a; return gcd(b, a%b); } template T lcm(T a, T b) { return a*b/gcd(a,b); } class LCMsort { public: void solve(void) { int N; cin>>N; vector a(N,0); REP(i,N) cin>>a[i]; vector used(N,false); // sort を進めるにつれソート対象列が短くなるので、実際にソートするのでなく、lcm が最も小さい // ものを取り出していくだけでよい。 // O(N^2*A) REP(pivot,N) { cout<solve(); delete obj; return 0; } #endif