program am
implicit none
character(1000)::S
logical::dm(4)=.false.
integer::i
read*,S
do i=1,len_trim(S)
    if(S(i:i)=="N")dm(1)=.true.
    if(S(i:i)=="S")dm(2)=.true.
    if(S(i:i)=="W")dm(3)=.true.
    if(S(i:i)=="E")dm(4)=.true.
end do
print"(A)",trim(merge("Yes","No ",.not.(xor(dm(1),dm(2))) .and. .not.(xor(dm(3),dm(4))) ))
end program am