#include<stdio.h>
int A[500001];
int T[500001];



void swap(int *a, int *b){
 int temp;

  temp=*a;
  *a=*b;
  *b=temp;

}



void push_heap(int T[],int x,int *size){
int k;
 (*size)++;
 T[*size]=x;
 k=*size;
 while((T[k]>T[k/2])&&(k/2>=1)){
  swap(&T[k],&T[k/2]);
  k=k/2;
 }

}


int main(){
int size=0;
int i,n;


scanf("%d",&n);

for(i=0;i<n;i++){scanf("%d",&A[i]);}


for(i=0;i<n;i++){ push_heap(T,A[i],&size); }
for(i=1;i<=n;i++){ printf(" %d",T[i]); }

return 0;
}