type mas=array [1..100] of integer;
var a:mas;
i,n:integer;
procedure swap(var a,b:integer);
var c:integer;
begin
c:=a;
a:=b;
b:=c;
end;
procedure maxheapify(var a:mas; n,i:integer);
var max:integer;
begin
max:=i;
if (2*i+1)<=n then
if a[2*i+1]>a[i] then max:=2*i+1;
if 2*i<=n then
if a[2*i]>a[max] then max:=2*i;
if max<>i then
begin
swap(a[i],a[max]);
maxheapify(a,n,max);
end;
end;
procedure buildheap(var a:mas; n:integer);
var i:integer;
begin
for i:=n div 2 downto 1 do
maxheapify(a,n,i);
end;
begin
readln(n);
for i:=1 to n do
read(a[i]);
buildheap(a,n);
for i:=n downto 2 do
begin
swap(a[i],a[1]);
maxheapify(a,i-1,1);
end;
for i:=1 to n do
write(a[i],' ');
end.
dHlwZSBtYXM9YXJyYXkgWzEuLjEwMF0gb2YgaW50ZWdlcjsKdmFyIGE6bWFzOwogICAgaSxuOmludGVnZXI7CnByb2NlZHVyZSBzd2FwKHZhciBhLGI6aW50ZWdlcik7CnZhciBjOmludGVnZXI7CmJlZ2luCiAgYzo9YTsKICBhOj1iOwogIGI6PWM7CmVuZDsKcHJvY2VkdXJlIG1heGhlYXBpZnkodmFyIGE6bWFzOyBuLGk6aW50ZWdlcik7CnZhciBtYXg6aW50ZWdlcjsKYmVnaW4KICBtYXg6PWk7CiAgaWYgKDIqaSsxKTw9biB0aGVuCiAgICBpZiBhWzIqaSsxXT5hW2ldIHRoZW4gbWF4Oj0yKmkrMTsKICBpZiAyKmk8PW4gdGhlbiAgCiAgICBpZiBhWzIqaV0+YVttYXhdIHRoZW4gbWF4Oj0yKmk7CiAgaWYgbWF4PD5pIHRoZW4KICAgIGJlZ2luCiAgICAgIHN3YXAoYVtpXSxhW21heF0pOwogICAgICBtYXhoZWFwaWZ5KGEsbixtYXgpOwogICAgZW5kOwplbmQ7CnByb2NlZHVyZSBidWlsZGhlYXAodmFyIGE6bWFzOyBuOmludGVnZXIpOwp2YXIgaTppbnRlZ2VyOwpiZWdpbgogIGZvciBpOj1uIGRpdiAyIGRvd250byAxIGRvCiAgICBtYXhoZWFwaWZ5KGEsbixpKTsKZW5kOyAgICAKYmVnaW4KICByZWFkbG4obik7CiAgZm9yIGk6PTEgdG8gbiBkbwogICAgcmVhZChhW2ldKTsKICBidWlsZGhlYXAoYSxuKTsKICBmb3IgaTo9biBkb3dudG8gMiBkbwogICAgYmVnaW4gCiAgICAgIHN3YXAoYVtpXSxhWzFdKTsKICAgICAgbWF4aGVhcGlmeShhLGktMSwxKTsKICAgIGVuZDsgICAKICBmb3IgaTo9MSB0byBuIGRvCiAgICB3cml0ZShhW2ldLCcgJyk7IAplbmQuICAgICAgICAg