uses crt;
var n,i,j,x,vt,max:longint;l,a,t:array[0..1000]of longint;
begin
clrscr;
readln(n);
for i:=1 to n do
readln(a[i]);
for i:=n-1 downto 1 do
begin
for j:=i+1 to n do
if(i<>j)and(l[i]<l[j]+1)and(a[i]<a[j])then begin l[i]:=l[j]+1;t[i]:=j;end;
end;
for i:=1 to n do
if(max<l[i])then begin max:=l[i];vt:=i;end;
t[0]:=vt;
l[0]:=max+1;
x:=t[0];
repeat
write(a[x],' ');
x:=t[x];
until x=0;
readln;
end.
readln;
end.