#include<stdio.h>
void heapify(int a[], int i);
void build_heap(int a[]);
void heapsort(int a[]);
int left(int i);
int right(int i);
int a[100];
int length;
int main()
{
int i;
scanf("%d",&length);
for(i=0;i<length;i++)
{
scanf("%d",&a[i]);
}
build_heap(a);
heapsort(a);
return 0;
}
void build_heap(int a[])
{
int i;
for(i=(length-1)/2;i>=0;i--)
heapify(a,i);
}
int left(int i)
{
return 2*i+1;
}
int right(int i)
{
return 2*i+2;
}
void heapify(int a[], int i)
{
int l=left(i);
int r=right(i);
int largest, store;
if (l<length && a[l]<a[i])
largest=l;
else
largest=i;
if(r<length && a[r]<a[largest])
largest=r;
if (largest!=i)
{
store=a[largest];
a[largest]=a[i];
a[i]=store;
heapify(a,largest);
}
}
void heapsort(int a[])
{
build_heap(a);
int i,store;
for(i=(length-1);i>=0;i--)
{
store=a[0];
a[0]=a[i];
a[i]=store;
printf("\n%d",a[i]);
length--;
heapify(a,0);
}
}
I2luY2x1ZGU8c3RkaW8uaD4Kdm9pZCBoZWFwaWZ5KGludCBhW10sIGludCBpKTsKdm9pZCBidWlsZF9oZWFwKGludCBhW10pOwp2b2lkIGhlYXBzb3J0KGludCBhW10pOwppbnQgbGVmdChpbnQgaSk7CmludCByaWdodChpbnQgaSk7CmludCBhWzEwMF07CmludCBsZW5ndGg7CmludCBtYWluKCkKewogICAgaW50IGk7CglzY2FuZigiJWQiLCZsZW5ndGgpOwoJZm9yKGk9MDtpPGxlbmd0aDtpKyspCgl7CgkJc2NhbmYoIiVkIiwmYVtpXSk7Cgl9CglidWlsZF9oZWFwKGEpOwoJaGVhcHNvcnQoYSk7CglyZXR1cm4gMDsKfQp2b2lkIGJ1aWxkX2hlYXAoaW50IGFbXSkKewogIGludCBpOwoJZm9yKGk9KGxlbmd0aC0xKS8yO2k+PTA7aS0tKQogICAgaGVhcGlmeShhLGkpOwp9CgppbnQgbGVmdChpbnQgaSkKewoJcmV0dXJuIDIqaSsxOwp9CgppbnQgcmlnaHQoaW50IGkpCnsKCXJldHVybiAyKmkrMjsKfQoKdm9pZCBoZWFwaWZ5KGludCBhW10sIGludCBpKQp7CglpbnQgbD1sZWZ0KGkpOwoJaW50IHI9cmlnaHQoaSk7CglpbnQgbGFyZ2VzdCwgc3RvcmU7CglpZiAobDxsZW5ndGggJiYgYVtsXTxhW2ldKQoJCWxhcmdlc3Q9bDsKCWVsc2UKCQlsYXJnZXN0PWk7CgoJaWYocjxsZW5ndGggJiYgYVtyXTxhW2xhcmdlc3RdKQoJCWxhcmdlc3Q9cjsKCWlmIChsYXJnZXN0IT1pKQoJewoJCXN0b3JlPWFbbGFyZ2VzdF07CgkJYVtsYXJnZXN0XT1hW2ldOwoJCWFbaV09c3RvcmU7CgkJaGVhcGlmeShhLGxhcmdlc3QpOwogICAgfQp9Cgp2b2lkIGhlYXBzb3J0KGludCBhW10pCnsKCWJ1aWxkX2hlYXAoYSk7CglpbnQgaSxzdG9yZTsKCWZvcihpPShsZW5ndGgtMSk7aT49MDtpLS0pCgl7CgkJc3RvcmU9YVswXTsKCQlhWzBdPWFbaV07CgkJYVtpXT1zdG9yZTsKCQlwcmludGYoIlxuJWQiLGFbaV0pOwoJCWxlbmd0aC0tOwoJCWhlYXBpZnkoYSwwKTsKCX0KfQ==