program main
  implicit none
  integer*8::N,i
  integer*8::a(16),m,l,mt,lt
  data a/16*0/
  read *,N
  read *,a(1:N)
  m = a(1)
  l = a(1)
  do i=2,N
     if(a(i).ne.0) then
        mt = MAX(MAX(m*a(i),MAX(m-a(i),MAX(m+a(i),m/a(i)))), &
             MAX(l*a(i),MAX(l-a(i),MAX(l+a(i),l/a(i)))))
        lt = MIN(MIN(m*a(i),MIN(m-a(i),MIN(m+a(i),m/a(i)))), &
             MIN(l*a(i),MIN(l-a(i),MIN(l+a(i),l/a(i)))))
     else
        mt = MAX(MAX(m*a(i),MAX(m-a(i),m+a(i))), &
             MAX(l*a(i),MAX(l-a(i),l+a(i))))
        lt = MIN(MIN(m*a(i),MIN(m-a(i),m+a(i))), &
             MIN(l*a(i),MIN(l-a(i),l+a(i))))
     end if
     m = mt
     l = lt
  end do
  print '(i0)',m

contains
  subroutine aprinter(array)
    integer::array(:)
    character*32::cformat='(i0,     (1x,i0))'
    write(cformat(5:9),'(i0)'),size(array)
    write(*,cformat) array
  end subroutine aprinter
end program main