import Control.Applicative

import Control.Monad
    (replicateM)
    
import Data.List
    (intercalate)
    
type Set = (Int, [Int])

type Problem = [Set]

type Result = [Int]

findMax :: Set -> Int

findMax (n, list)
    = maximum $ map sum subs where
        subs = concat [[take y $ drop x list | y <- [1..(n - x)]] | x <- [0..(n - 1)]]
        
solve :: Problem -> Result

solve sets
    = map findMax sets
    
output :: Result -> String

output result
    = intercalate "\n" $ map show result
    
input :: IO Problem

input
    = inputSets []
    
inputSets :: Problem -> IO Problem

inputSets sets
    = do
        n <- read <$> getLine
        if n == 0
            then return sets
            else do
                list <- replicateM n $ read <$> getLine
                inputSets $ sets ++ [(n, list)]
                
main :: IO ()

main
    = putStr.output =<< solve <$> input