스왑

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

11부터 nn까지의 정수가 한 번씩 나타나는 길이 nn의 수열 x1,x2,,xnx_1, x_2, \dots, x_n이 주어진다.

두 수를 바꾸는 "스왑" 연산으로 이 수열을 고칠 수 있다. k=2,3,,nk = 2, 3, \dots, n 순서로 kk를 하나씩 늘려 가면서, 각 kk마다 xkx_kxk/2x_{\lfloor k/2 \rfloor}를 바꿀지 바꾸지 않을지 고를 수 있다. 이미 지나간 kk로는 돌아가지 못한다.

수열 a1,a2,,ana_1, a_2, \dots, a_n이 수열 b1,b2,,bnb_1, b_2, \dots, b_n보다 사전순으로 앞선다는 것은, k<jk < j인 모든 kk에 대해 ak=bka_k = b_k이고 aj<bja_j < b_jjj (1jn)(1 \le j \le n)가 존재한다는 뜻이다.

순서대로 "스왑" 연산을 골라 만들 수 있는 수열 중 사전순으로 가장 앞선 수열은 무엇일까?

입력

첫 줄에 정수 nn이 주어진다. (1n5000)(1 \le n \le 5000)

둘째 줄에 수열을 이루는 nn개의 정수가 공백으로 구분되어 주어진다. 이 수열은 11부터 nn까지의 정수를 한 번씩 담은 순열이다.

출력

첫 줄에 순서대로 "스왑" 연산을 골라 만들 수 있는 수열 중 사전순으로 가장 앞선 수열을 나타내는 nn개의 정수를 공백으로 구분해 출력한다.