module Main where import qualified Data.Array as A import Input main :: IO () main = do input <- getInput 3 let height = length input width = length (head input) let grid = A.array ((0, 0), (height - 1, width - 1)) [((y, x), fromEnum (c == '#')) | (y, row) <- zip [0..] input , (x, c) <- zip [0..] row] countSlope hor ver = let nsteps = height `div` ver in sum [grid A.! (ver * i, hor * i `mod` width) | i <- [0..nsteps-1]] print (countSlope 3 1) print (product (map (uncurry countSlope) [(1,1), (3,1), (5,1), (7,1), (1,2)]))