import java.util.*;

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

        String[] words = {"dream", "dreamer", "erase", "eraser"};

        Queue<Integer> q = new ArrayDeque<>();
        q.add(0);

        boolean matched = false;
        while (!q.isEmpty()) {
            int i = q.poll();
            if (i == S.length()) {
                matched = true;
                break;
            }

            for (String word : words) {
                int end = i + word.length();
                if (end > S.length()) {
                    continue;
                }
                if (S.substring(i, end).equals(word)) {
                    q.add(end);
                }
            }
        }

        if (matched) {
            System.out.println("YES");
        } else {
            System.out.println("NO");
        }
    }
}

/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