var
a,b,c,len,len1,i,j,i1,j1,d,e,k:longint;
v,v1:array[1..200000]of longint;
r,r1:array[1..200000,1..2]of longint;
p:boolean;
begin
readln(a);
for b:=1 to a do
begin
readln(v[b]);
inc(len);
r[len,1]:=b;
r[len,2]:=b;
end;
v1:=v;
while len<>1 do
begin
b:=0;
len1:=0;
p:=false;
while b<>a do
begin
inc(b,2);
c:=b-1;
if c=len then
begin
inc(len1);
r1[len1,1]:=r[len,1];
r1[len1,2]:=r[len,2];
break;
end;
if c>len then
break;
i:=r[c,1];
j:=r[b,2];
i1:=r[c,1];
j1:=r[b,1];
for d:=i to j do
begin
if (v[i1]<v[j1]) then
begin
v1[d]:=v[i1];
inc(i1);
end
else
begin
v1[d]:=v[j1];
inc(j1);
end;
if i1=r[c,2]+1 then
begin
k:=d;
for e:=j1 to r[b,2] do
begin
inc(k);
v1[k]:=v[e];
end;
break;
end;
if j1=r[b,2]+1 then
begin
k:=d;
for e:=i1 to r[c,2] do
begin
inc(k);
v1[k]:=v[e];
end;
break;
end;
end;
inc(len1);
r1[len1,1]:=i;
r1[len1,2]:=j;
end;
len:=len1;
r:=r1;
fillchar(r1,sizeof(r1),0);
v:=v1;
end;
for b:=1 to a do
writeln(v[b]);
end.
a,b,c,len,len1,i,j,i1,j1,d,e,k:longint;
v,v1:array[1..200000]of longint;
r,r1:array[1..200000,1..2]of longint;
p:boolean;
begin
readln(a);
for b:=1 to a do
begin
readln(v[b]);
inc(len);
r[len,1]:=b;
r[len,2]:=b;
end;
v1:=v;
while len<>1 do
begin
b:=0;
len1:=0;
p:=false;
while b<>a do
begin
inc(b,2);
c:=b-1;
if c=len then
begin
inc(len1);
r1[len1,1]:=r[len,1];
r1[len1,2]:=r[len,2];
break;
end;
if c>len then
break;
i:=r[c,1];
j:=r[b,2];
i1:=r[c,1];
j1:=r[b,1];
for d:=i to j do
begin
if (v[i1]<v[j1]) then
begin
v1[d]:=v[i1];
inc(i1);
end
else
begin
v1[d]:=v[j1];
inc(j1);
end;
if i1=r[c,2]+1 then
begin
k:=d;
for e:=j1 to r[b,2] do
begin
inc(k);
v1[k]:=v[e];
end;
break;
end;
if j1=r[b,2]+1 then
begin
k:=d;
for e:=i1 to r[c,2] do
begin
inc(k);
v1[k]:=v[e];
end;
break;
end;
end;
inc(len1);
r1[len1,1]:=i;
r1[len1,2]:=j;
end;
len:=len1;
r:=r1;
fillchar(r1,sizeof(r1),0);
v:=v1;
end;
for b:=1 to a do
writeln(v[b]);
end.