숨겨진 수열의 모든 N^2개 최대공약수 값이 임의 순서로 주어질 때 원래 수열을 복원한다.
길이가 NNN인 수열 A=(a1,a2,…,aN)A = (a_1, a_2, \dots, a_N)A=(a1,a2,…,aN)의 GCD 테이블 GGG는 다음과 같이 정의된다.
gij=gcd(ai,aj)g_{ij} = \gcd(a_i, a_j)gij=gcd(ai,aj)
여기서 gcd(x,y)\gcd(x, y)gcd(x,y)는 xxx와 yyy의 최대공약수이다. 예를 들어 A=(4,3,6,2)A = (4, 3, 6, 2)A=(4,3,6,2)의 GCD 테이블은 다음과 같다.
GCD 테이블 GGG를 이루는 값 N2N^2N2개가 순서 없이 주어진다. 원래 수열 AAA를 복원하여라.
첫째 줄에 수열 AAA의 길이 NNN(1≤N≤5001 \le N \le 5001≤N≤500)이 주어진다.
둘째 줄에 GCD 테이블의 값 N2N^2N2개가 임의의 순서로 공백을 사이에 두고 주어진다. 값은 모두 양의 정수이고 1,000,000,0001{,}000{,}000{,}0001,000,000,000 이하이다. 답이 존재하지 않는 입력은 주어지지 않는다.
복원한 수열의 원소 NNN개를 공백으로 구분해 한 줄에 출력한다.
원소를 어떤 순서로 늘어놓아도 GCD 테이블은 같으므로, 오름차순으로 정렬해서 출력한다. 이것이 사전순으로 가장 작은 답이다. 원소의 다중집합은 유일하게 정해진다.