count :: Eq a => a -> [a] -> Int count x = foldr f 0 where f y n | x == y = n + 1 | otherwise = n main :: IO () main = do ls <- getContents let ns = map (map read . words) . lines $ ls let xs = map head ns let ys = map last ns let ms = map (\x -> x * count x ys) xs print (sum ms)