while line = gets do
  n = line.to_i
  break if n == 0
  array = []
  temp = []
  count = 0
  n.times do |i|
    a = gets.to_i
    if temp.length == 0
      temp.push a
    elsif (temp[count - 1] >= 0) != (a >= 0)
      array.push temp
      temp = []
      temp.push a
      count = 0
    else
      temp.push a
    end
    count += 1
  end
  array.push temp
  max = 0
  if array.length == 1 || (array.length == 2 && array[0].inject{|sum, a| sum += a}.abs < array[1].inject{|sum, a| sum += a}.abs)
    max += array.first.first <= 0 ? array.first.first : array.first.inject{|sum, a| sum += a}
  else
    array.shift if array[0].first <= 0
    max = array.first.inject{|sum, a| sum += a}
    array.shift
    0.step(array.length - 1, 2) do |i|
      if i == array.length - 1
        if array[i].first > 0
          max += array[i].inject{|sum, a| sum += a}
        end
      else
        t1 = array[i].inject{|sum, a| sum += a}
        t2 = array[i + 1].inject{|sum, a| sum += a}
        max += t1 + t2 if t2.abs > t1.abs
      end
    end
  end
  puts max
end