import std.stdio;
import std.algorithm;
import std.array;
import std.conv;
import std.string;

void main() {
  string str = readln.chomp;
  string[2] ss = ["eraser", "dreamer"];

  // array.lengthの返り値の型はulongなので
  // intに代入しようとすると(dmd64 v2.070.1では)CEになる
  int p = str.length.to!int;

  while (p > 0) {
    bool flag = false;

    if (str[p - 1] == 'r') {
      for (int i = 0; i < 2; ++i) {
        if (p < ss[i].length.to!int) {
          break;
        }

        if (ss[i] == str[(p - ss[i].length.to!int)..p]) {
          p -= ss[i].length.to!int;
          flag = true;
          break;
        }
      }
    }
    else if (str[p - 1] == 'e' && p >= 5) {
      if (str[(p - 5)..p] == "erase") {
        flag = true;
        p -= 5;
      }
    }
    else if (str[p - 1] == 'm' && p >= 5) {
      if (str[(p - 5)..p] == "dream") {
        flag = true;
        p -= 5;
      }
    }

    if (!flag) {
      writeln("NO");
      return;
    }
  }

  writeln("YES");

  return;
}