import scala.annotation.tailrec

object Scanner {
  private val buf = new Array[Byte](1024); private var ptr = 0; private var len = 0
  @inline private def isPrintableChar(c: Int): Boolean = 33 <= c && c <= 126
  @inline private def hasNextByte(): Boolean =
    if (ptr >= len) { ptr = 0; len = System.in.read(buf); len > 0 } else { true }
  @inline private def hasNext(): Boolean = {
    while (hasNextByte() && !isPrintableChar(buf(ptr))) ptr += 1
    hasNextByte()
  }
  @inline private def readByte(): Byte =
    if (hasNextByte()) { val res = buf(ptr); ptr += 1; res } else { -1 }
  def next(): String = {
    if(!hasNext()) ???
    val sb = new StringBuilder; var b = readByte()
    while (isPrintableChar(b)) { sb.append(b.toChar); b = readByte() }
    sb.toString
  }
  def nextInt(): Int = {
    val n = nextLong()
    if (n < Int.MinValue || Int.MaxValue < n) ???
    n.toInt
  }
  def nextLong(): Long = {
    if(!hasNext()) ???
    var minus = false; var b = readByte()
    if (b == '-') { minus = true; b = readByte() }
    def go (b: Byte, n: Long = 0): Long =
      if ('0' <= b && b <= '9') { go(readByte(), n * 10 + b - '0') }
      else if (minus) { -n } else { n }
    go(b)
  }
  def nextDouble(): Double = next.toDouble
}

object Main extends App {
  val n = Scanner.nextInt()
  var a = Array.fill(n)(Scanner.nextInt())

  var sum:Long = 0
  var i = 0
  while (i<n-1) {
    if (a(i)>=0) {
      sum += a(i)
      i += 1
    } else if (a(i)<0 && a(i+1) < 0) {
      sum += -(a(i)+a(i+1))
      i += 2
    } else if (a(i)<0 && a(i+1) >= 0) {
      if ((a(i)+a(i+1))<=0){
        sum += -a(i)
        a(i+1) = -a(i+1)
        i +=1
      } else {
        sum += a(i)
        i += 1
      }
    }
  }
  if (i==n-1) {
    sum += a(n-1)
  }

  println(sum)
}