import Control.Applicative

bothDir :: Int -> Int -> Bool
bothDir 0 0 = True
bothDir _ 0 = False
bothDir 0 _ = False
bothDir _ _ = True

main :: IO ()
main = do
    path <- getLine
    let n = length . filter (=='N') $ path
        s = length . filter (=='S') $ path
        e = length . filter (=='E') $ path
        w = length . filter (=='W') $ path
        res = case (bothDir n s) && (bothDir e w) of
                True -> "Yes"
                False -> "No"
    putStrLn res
