나누는 자가 지배한다

새로 놓는 카드가 이미 놓인 카드 합의 약수가 되도록 N장을 순서대로 내려놓고, 사전순으로 가장 작은 승리 순서를 출력하거나 No를 출력한다.

보통7백트래킹그리디수학동적 계획법아직 제출이 없습니다시간 제한8초메모리 제한512 MB

문제

"Divisor is the Conquerer"는 혼자 하는 카드 게임이다. 규칙은 다음과 같다.

먼저 카드 덱에서 카드 NN장을 뽑는다. 게임은 뽑은 카드만으로 진행하고, 나머지 카드는 쓰지 않는다.

그다음 카드를 한 장씩 바닥에 내려놓는다. 첫 장은 아무 카드나 내려놓아도 된다. 그 뒤로는 이미 바닥에 있는 카드들을 지배하는 카드만 내려놓을 수 있다. 어떤 카드가 카드 집합을 지배한다는 것은 그 카드가 나타내는 수가 집합에 있는 수들의 합을 나눈다는 뜻이다. 예를 들어 카드 77은 집합 {5,11,12}\{5, 11, 12\}를 지배하지만, 카드 1111은 집합 {5,7,12}\{5, 7, 12\}를 지배하지 않는다.

뽑은 NN장을 모두 내려놓으면 이긴다. 도중에 내려놓을 수 있는 카드가 하나도 없으면 진다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다.

각 테스트 케이스는 두 줄이다. 첫 줄에 카드의 개수 NN (1N521 \le N \le 52)이 주어진다. 둘째 줄에 각 카드가 나타내는 수 c1,,cNc_1, \dots, c_N (1ci131 \le c_i \le 13)이 공백으로 구분되어 주어진다. 한 테스트 케이스 안에서 같은 수를 나타내는 카드는 많아야 4장이다.

NN 자리에 00이 주어지면 입력이 끝난다.

출력

각 테스트 케이스마다 한 줄을 출력한다.

이길 수 있으면 카드를 내려놓는 순서를 NN개의 정수로 공백 하나씩 두고 출력한다. 이기는 순서가 여러 개면 사전순으로 가장 앞서는 것 하나만 출력한다. 길이가 같은 두 수열 AABB에서 AiBiA_i \ne B_i인 가장 작은 ii에 대해 Ai<BiA_i < B_i이면 AABB보다 사전순으로 앞선다.

이길 수 없으면 No를 출력한다.