program MAX3;
 var n,i:longint;
     a:integer;
     max:array[1..3] of integer;
     cmin:byte;
 begin
  i:=0; cmin:=1;
  max[1]:=0; max[2]:=0; max[3]:=0;
  readln(n);
  repeat
   i:=i+1;
   read(a);
   if a>max[1] then max[1]:=a
               else if abs(a)>max[2] then begin
                                      if max[2]<>0 then begin
                                                          max[3]:=max[2];
                                                          max[2]:=a;
                                                        end
                                                   else max[2]:=a;
                                     end
               else if abs(a)>max[3] then max[3]:=a;
   if max[2]>max[3] then max[3]:=max[2];
  until i=n;
  write(max[2],' ',max[1],' ',max[3]);
 end.


