N = 10001 yaku = [[] for _ in range(N)] for i in range(1,N): for j in range(i,N,i): yaku[j].append(i) num = [0]*N n,a,*s = map(int,open(0).read().split()) for i in s: num[i] += 1 s = sorted(set(s)) n = len(s) from heapq import * hqs = [[] for _ in range(N)] for i in s: for j in yaku[i]: hqs[j].append(i) removed = set() ans = [a] for i in range(n): v = r = 1000000000 for k in yaku[a]: while hqs[k] and hqs[k][0] in removed: heappop(hqs[k]) if hqs[k]: x = hqs[k][0]//k*n if r > x or (r==x and v > hqs[k][0]): r = x v = hqs[k][0] a = v removed.add(a) ans += [a]*num[a] print(*ans)