#if 0
#include<iostream>
using namespace std;
#define N 10
void HeapAdjust(int a[],int i,int n)
{
int lchild = 2*i;
int rchild = 2*i+1;
int max = i;
if(i<=n/2)
{
if(lchild<=n&&a[lchild]>a[max])
{
max = lchild;
}
if(rchild<=n&&a[rchild]>a[max])
{
max = rchild;
}
if(max!=i)
{
swap(a[i],a[max]);
HeapAdjust(a,max,n);
}
}
}
void BuildHeap(int a[],int n)
{
int i;
for(i = n/2;i>=1;i--)
{
HeapAdjust(a,i,n);
}
}
void HeapSort(int a[],int n)
{
int i;
BuildHeap(a,n);
for(i =n;i>=1;i--)
{
swap(a[1],a[i]);
HeapAdjust(a,1,i-1);
}
}
int main()
{
int a[N];
int i;
for(i = 1;i<=N;i++)
cin>>a[i];
HeapSort(a,N);
for(i = 1;i<=N;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}
#endif