{-# OPTIONS_GHC -Wno-incomplete-patterns #-} scoreLose = 0 scoreDraw = 3 scoreWin = 6 resolveMatchScore 'A' 'Z' = scoreLose resolveMatchScore 'B' 'X' = scoreLose resolveMatchScore 'C' 'Y' = scoreLose resolveMatchScore 'A' 'Y' = scoreWin resolveMatchScore 'B' 'Z' = scoreWin resolveMatchScore 'C' 'X' = scoreWin resolveMatchScore 'A' 'X' = scoreDraw resolveMatchScore 'B' 'Y' = scoreDraw resolveMatchScore 'C' 'Z' = scoreDraw resolveOptionScore 'X' = 1 resolveOptionScore 'Y' = 2 resolveOptionScore 'Z' = 3 getScore a b = resolveMatchScore a b + resolveOptionScore b main = interact $ show . sum . map ((\l -> getScore (l !! 0 !! 0) (l !! 1 !! 0)) . words) . lines