#yuki_505 INF=float('inf') n=int(raw_input()) a=map(int,raw_input().split()) dp=[[-INF,INF] for j in xrange(n)] dp[0][0]=dp[0][1]=a[0] for i in xrange(1,n): for j in xrange(2): dp[i][0]=max(dp[i][0],dp[i-1][j]+a[i]) dp[i][0]=max(dp[i][0],dp[i-1][j]-a[i]) dp[i][0]=max(dp[i][0],dp[i-1][j]*a[i]) if a[i]!=0: dp[i][0]=max(dp[i][0],dp[i-1][j]/a[i]) dp[i][1]=min(dp[i][1],dp[i-1][j]+a[i]) dp[i][1]=min(dp[i][1],dp[i-1][j]-a[i]) dp[i][1]=min(dp[i][1],dp[i-1][j]*a[i]) if a[i]!=0: dp[i][1]=min(dp[i][1],dp[i-1][j]/a[i]) print dp[n-1][0]