import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    String s = scanner.next();
    if (possible(s)) {
      System.out.println("YES");
    } else {
      System.out.println("NO");
    }
  }

  private static boolean possible(CharSequence s) {
    for (int i = 0; i < s.length();) {
      if (startsWith(s, i, "dreamer")) {
        i += 5;
        if (!startsWith(s, i, "erase")) i += 2;
      } else if (startsWith(s, i, "dream")) {
        i += 5;
      } else if (startsWith(s, i, "eraser")) {
        i += 6;
      } else if (startsWith(s, i, "erase")) {
        i += 5;
      } else {
        return false;
      }
    }
    return true;
  }

  private static boolean startsWith(CharSequence s, int i, String t) {
    if (i + t.length() > s.length()) return false;
    for (int j = 0; j < t.length(); j++) {
      if (s.charAt(i + j) != t.charAt(j)) return false;
    }
    return true;
  }
}

/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz