N = gets.to_i a = gets.split.map(&:to_i) OP = [:+, :-, :*, :/] ans = a[1..-1].inject([a[0], a[0]]) {|memo, x| d = memo.product(OP).map {|v, o| if x == 0 and o == :/ 0 elsif (v < 0 or x < 0) and o == :/ -(v.abs / x.abs) else v.send(o, x) end } [d.min, d.max] }.max puts ans