#include <stdio.h>
#define height 4
#define MAX height*height

int size=0;
int t[MAX+1];
void setT(int t[]){
	int i;
	for(i=0;i<MAX;i++){
		t[i]=-1;
	}
}
int ToL(int i){
	if(i*2>=MAX)return 0;
	return i*2;
}
int ToR(int i){
	if(i*2+1>=MAX)return 0;
	return 2*i+1;
}
void inT(int y){
	int i=1,k;
	for(k=0;k<height;k++){
		if(t[i]==-1){
			t[i]=y;
			size++;
			return;
		}else if(t[i]>y){
			i=ToL(i);
		}else{
			i=ToR(i);
		}
	}
}
int main(void) {
	int i,n,y;
	setT(t);
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d",&y);
		inT(y);
	}
	for(i=1;i<MAX;i++){
		printf("%d ",t[i]);
	}
	return 0;
}
