// Java implementation of Inaba's fromBack::solve equivalent. // Processes about 150,000 to 200,000 cases per minute. import java.util.*; import java.io.*; class Solver { private int[] num; private int val; private int[] ans; private int cnt; public Solver() { num = new int[14]; for(int i = 1; i <= 13; i++) { num[i] = 0; } val = 0; ans = new int[52]; cnt = 0; } public void add(int card) { num[card]++; val += card; } public boolean solve() { if(val == 0) { return true; } for(int i = 1; i <= 13; i++) { if(num[i] > 0 && val % i == 0) { num[i]--; val -= i; if(solve()) { ans[cnt++] = i; return true; } num[i]++; val += i; } } return false; } public String toString() { if(cnt > 0) { StringBuffer sb = new StringBuffer(); for(int i = 0; i < cnt; i++) { if(i > 0) { sb.append(" "); } sb.append(ans[i]); } return new String(sb); } else { return "No"; } } } public class divcon_yuizumi { public static void main(String[] args) throws Exception { BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader(System.in)); while(true) { int n = Integer.parseInt(br.readLine()); if(n == 0) break; StringTokenizer lex = new StringTokenizer(br.readLine()); Solver sol = new Solver(); for(int i = 0; i < n; i++) { sol.add(Integer.parseInt(lex.nextToken())); } sol.solve(); System.out.println(sol); } } finally { if(br != null) br.close(); } } }