import scala.collection.mutable
import scala.collection.mutable.ListBuffer

/**
 * Created by rasrivastava on 1/5/17.
 */
class AdditionAndSubstraction {

  val cache = new mutable.HashMap[(Int,Int),Set[Int]]()
  def maxSum(arr : Array[Int],start : Int,end : Int,depth : Int) : Set[Int] = {
//    for (i <- 0 to depth-1) {
//      print(" ")
//    }
//    println("start = " + start + "  end " + end)
    if (cache.contains((start,end))) {
      //println("Cache hit " + (start,end))
      cache.get((start,end)).get
    }else {
      if (start == end) {
        Set[Int](arr(start))
      } else {
        val lstBuffer = new mutable.HashSet[Int]
        for (i <- start + 1 to end) {
          val current = arr(i)
          if (current < 0) {
            //Negate the value
            arr(i) = -current
            val lst1 = maxSum(arr, start, i - 1, depth + 1)
            val lst2 = maxSum(arr, i, end, depth + 1)
            lst1.foreach(s1 => {
              lst2.foreach(s2 => {
                lstBuffer.+=(s1 - s2)
              })
            })
            //reset back
            arr(i) = current

          } else {
            val lst1 = maxSum(arr, start, i - 1, depth + 1)
            val lst2 = maxSum(arr, i, end, depth + 1)
            lst1.foreach(s1 => {
              lst2.foreach(s2 => {
                lstBuffer.+=(s1 + s2)
              })
            })
          }
        }

        var currentSum = 0
        for (i <- start to end) {
          currentSum += arr(i)
        }

        lstBuffer.+=(currentSum)


        val s = lstBuffer.toSet
        cache.put((start,end),s)
        s


      }
    }
  }

}


object Main extends App {
  val addSub = new AdditionAndSubstraction
  val count = scala.io.StdIn.readLine().toInt
  val exprArr = scala.io.StdIn.readLine().split(" ")
  var state = 1
  val exprIntArr = new Array[Int](count)
  exprIntArr(0) = exprArr(0).toInt
  var j = 1
  var totalAdd = 1
  var totalSub = 0
  for (i <- 1 to count-1) {

    exprArr(j) match {
      case "+" => {
        totalAdd = totalAdd + 1
        state = 1
        exprIntArr(i) = exprArr(j+1).toInt * state
        j = j + 2
      }
      case "-" => {
        totalSub = totalSub + 1
        state = -1
        exprIntArr(i) = exprArr(j+1).toInt * state
        j = j + 2
      }
      case num => {
        println("Error")
      }
    }



  }

  //println(exprIntArr.deep.mkString(" "))

  if (totalSub == 0) {
    println(exprIntArr.sum)
  }else {
    println(addSub.maxSum(exprIntArr,0,exprIntArr.length-1,0).max)
  }
  
}