let main () =
  let n = Scanf.scanf "%s\n" (fun a -> a) in
  let n = ref @@ BatString.rev n in
  let xs = BatArray.map BatString.rev [|"dream"; "dreamer"; "erase"; "eraser"|] in
  let flag = ref true in
  while !flag do
    flag := BatArray.fold_left (fun acc elm ->
        if BatString.equal (BatString.left !n @@ BatString.length elm) elm
        then (n := BatString.tail !n @@ BatString.length elm; true)
        else acc || false
      ) false xs
  done;
  Printf.printf (if BatString.is_empty !n then "YES" else "NO")

let _ = main ()
