답안지 재배분

시험지 더미가 부족해지지 않고 1번 방 학생이 자기 시험지를 받지 않도록 방을 방문하는 순서 중 사전순으로 가장 앞선 것을 찾는다.

보통6그리디정렬완전 탐색구현면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

린다가 시험 감독을 한다. 시험이 끝나면 학생들이 서로의 답안을 채점해 예비 점수를 매기도록 답안지를 다시 나눠 준다.

학생들은 크기가 제각각인 여러 방에 나뉘어 앉아 있다. 린다는 다음 방식으로 답안지를 재배분한다.

  1. 첫 번째 방에 들어가 그 방에서 작성된 답안지를 모두 걷어 한 더미로 쌓는다.
  2. 그다음 방부터는 더미 맨 위에서 그 방의 학생 수만큼 답안지를 꺼내 그 방 학생들에게 무작위로 나눠 준다. 이어서 그 방에서 작성된 답안지를 모두 걷어 더미 맨 아래에 넣는다.
  3. 모든 방을 정확히 한 번씩 방문한 뒤 첫 번째 방으로 돌아와 더미에 남은 답안지를 그 방 학생들에게 나눠 준다.

어떤 학생도 자기 답안지를 받아서는 안 되고, 배분 도중에 더미가 모자라서도 안 된다. 즉 첫 번째 방이 아닌 방에 들어갈 때마다 더미에 있는 답안지 수가 그 방의 학생 수 이상이어야 한다. 두 조건이 성립하는지는 방을 도는 순서에 달려 있다. 자기 답안지를 받는 학생이 생길 가능성이 없고 답안지도 모자라지 않는 방문 순서를 안전한 순서라고 한다.

안전한 순서를 구하거나, 그런 순서가 없음을 판정하라.

입력

첫째 줄에 방의 개수 nn (2n302 \le n \le 30)이 주어진다.

둘째 줄에 nn개의 정수 s1,,sns_1, \dots, s_n (1si1001 \le s_i \le 100)이 주어진다. sis_iii번 방의 학생 수이다.

출력

안전하게 재배분할 수 없으면 impossible을 출력한다.

그렇지 않으면 안전한 방문 순서를 방 번호 nn개로 한 줄에 공백으로 구분해 출력한다. 안전한 순서가 여러 개이면 방 번호 수열로 비교해 사전순으로 가장 앞서는 것을 출력한다.