import Data.List

main :: IO ()
main = do
  input <- map parse . lines <$> readFile "input"
  print $ sum $ map ((`div` 2) . (2 ^) . wins) input
  print $ sum $ map (play input) [0 .. pred $ length input]

parse :: String -> [Int]
parse = map read . delete "|" . drop 2 . words

wins :: [Int] -> Int
wins = length . filter (/= 1) . map length . group . sort

play :: [[Int]] -> Int -> Int
play input n = 1 + sum (map (play input) [n + 1 .. n + w])
  where
    w = wins (input !! n)
