import Control.Monad main = getLine >>= print . maximum1 . cww cww :: String -> [Int] cww n = do let l = length n i <- [0 .. l-1] j <- [i+1 .. l-1] k <- [j+1 .. l-1] let (c,w1,w2) = (n!!i, n!!j, n!!k) guard ((c /= '0') && (c /= w1) && (w1 == w2)) let next = map snd $ filter (flip notElem [i,j,k] . fst) $ zip [0..] n let x = read [c,w1,w2] return (x + maximum1 (cww next)) maximum1 xs = if null xs then 0 else maximum xs