import Control.Applicative ((<$>)) import Data.List import Data.Char (isSpace) import qualified Data.ByteString.Char8 as B8 import Data.Vector.Unboxed (Vector) import qualified Data.Vector.Unboxed as VU main :: IO () main = do B8.getLine solve <$> readIntList >>= print solve :: [Int] -> Int solve = VU.last . g . foldl' f (VU.replicate 7 0) where f :: Vector Int -> Int -> Vector Int f v x = VU.accum (+) v [(x, 1)] g v = let mx = VU.maximum v in VU.findIndices (== mx) v readIntList :: IO [Int] readIntList = unfoldr f <$> B8.getLine where f s = do (n, s') <- B8.readInt s return (n, B8.dropWhile isSpace s')