f :: [Char] -> [(Int, Char)] f xs = zip [1..] xs g :: [(Int, Char)] -> [Int] g ys = [z - x + 1| (x, a) <- ys, (y, b) <- ys, (z, c) <- ys, x < y, y < z , a == 'c', b == 'w', c == 'w'] main :: IO () main = do s <- g . f <$> getLine putStrLn $ show $ if null s then -1 else minimum s