GCD 테이블

숨겨진 수열의 모든 N^2개 최대공약수 값이 임의 순서로 주어질 때 원래 수열을 복원한다.

보통7수학정수론그리디해시맵아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

길이가 NN인 수열 A=(a1,a2,,aN)A = (a_1, a_2, \dots, a_N)의 GCD 테이블 GG는 다음과 같이 정의된다.

gij=gcd(ai,aj)g_{ij} = \gcd(a_i, a_j)

여기서 gcd(x,y)\gcd(x, y)xxyy의 최대공약수이다. 예를 들어 A=(4,3,6,2)A = (4, 3, 6, 2)의 GCD 테이블은 다음과 같다.

4362
44122
31331
62362
22122

GCD 테이블 GG를 이루는 값 N2N^2개가 순서 없이 주어진다. 원래 수열 AA를 복원하여라.

입력

첫째 줄에 수열 AA의 길이 NN(1N5001 \le N \le 500)이 주어진다.

둘째 줄에 GCD 테이블의 값 N2N^2개가 임의의 순서로 공백을 사이에 두고 주어진다. 값은 모두 양의 정수이고 1,000,000,0001{,}000{,}000{,}000 이하이다. 답이 존재하지 않는 입력은 주어지지 않는다.

출력

복원한 수열의 원소 NN개를 공백으로 구분해 한 줄에 출력한다.

원소를 어떤 순서로 늘어놓아도 GCD 테이블은 같으므로, 오름차순으로 정렬해서 출력한다. 이것이 사전순으로 가장 작은 답이다. 원소의 다중집합은 유일하게 정해진다.