import java.util.Scanner;

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

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

            for (int index = S.length(); index > 0;) {
                String match = find(S, index, s);

                if (match == null) {
                    System.out.println("NO");
                    return;
                }

                index -= match.length();
            }

            System.out.println("YES");
        }
    }

    private static String find(String S, int index, String[] s) {
        for (String dream : s) {
            if (S.substring(0, index).endsWith(dream)) {
                return dream;
            }
        }
        return null;
    }
}

/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