main = getLine >> interact (unlines . map (show . gpf) . lines) gpf :: String -> Int gpf s = minimum $ map (\m -> length (filter (\(c,d) -> c/=d && d/=' ') (zip s m))) masks where l = length s masks = do i <- [0 .. l - 11] j <- [0 .. l - 11 - i] let k = l - 11 - i - j return (replicate i ' ' ++ "good" ++ replicate j ' ' ++ "problem" ++ replicate k ' ')