character(10**5) S
character(5)::dream="dream"
character(7)::dreamer="dreamer"
character(5)::erase="erase"
character(6)::eraser="eraser"
integer start
logical check
read*,S
start=1
check=.TRUE.
do
  if(S(start:start+6)==dreamer)then
    start=start+7
  else if(S(start:start+4)==dream)then
    start=start+5
  else if(S(start:start+5)==eraser)then
    start=start+6
  else if(S(start:start+4)==erase)then
    start=start+5
  else
    check=.false.
    exit
  endif
  if(start==len_trim(S)+1)exit
end do
print"(A)",trim(merge("YES","NO ",check))
end