import Data.List (foldl') move :: (Int, Int) -> Char -> (Int, Int) move (x, y) c | c == 'N' = (x, y + 1) | c == 'E' = (x + 1, y) | c == 'W' = (x - 1, y) | c == 'S' = (x, y - 1) | otherwise = (x, y) norm :: (Int, Int) -> Double norm (x, y) = sqrt $ fromIntegral $ x * x + y * y main :: IO () main = print . norm . foldl' move (0, 0) =<< getLine