N = int( input() ) A = list( map( int, input().split() ) ) ans = - int( 1e30 ) for i in range( N ): if A[ i ] == 0: ans = 0 def dfs( x, v ): if x == N: global ans ans = max( ans, v ) return best = max( v + abs( A[ x ] ), v * A[ x ] ) if A[ x ] != 0: best = max( best, v // A[ x ] ) dfs( x + 1, best ) best = min( v - abs( A[ x ] ), v * A[ x ] ) if A[ x ] != 0: best = min( best, v // A[ x ] ) dfs( x + 1, best ) dfs( 1, A[ 0 ] ) print( ans )