import java.io.*;

public class Main {
    public static void main(String[] args) throws Exception {
        // 入力
        MyScanner sc = new MyScanner(System.in);
        String S = sc.nextString();

        // 初期化

        // 主処理
        String tmp = S;
        tmp = tmp.replaceAll("eraser", "");
        tmp = tmp.replaceAll("erase", "");
        tmp = tmp.replaceAll("dreamer", "");
        tmp = tmp.replaceAll("dream", "");
        String ans = "".equals(tmp) ? "YES" : "NO";

        // 出力
        System.out.println(ans);
    }

    static class MyScanner {
        BufferedReader br;
        // 標準入力から入力値を取得
        MyScanner(InputStream in) {
            br = new BufferedReader(new InputStreamReader(in));
        }
        // 標準入力を文字列で取得
        public String nextString() throws IOException {
            return br.readLine();
        }
        // 標準入力を文字列の配列で取得
        public String[] nextStringArray() throws IOException {
            return nextString().split(" ");
        }
        // 標準入力を数値で取得
        public int nextInt() throws IOException {
            return Integer.parseInt(nextString());
        }
        // 標準入力を数値の配列で取得
        public int[] nextIntArray() throws IOException {
            String[] strArr = nextStringArray();
            int[] intArr = new int[strArr.length];
            for(int i = 0; i < strArr.length; i++) {
                intArr[i] = Integer.parseInt(strArr[i]);
            }
            return intArr;
        }
    }

} import java.io.*; io.* java public class Main {
    public static void main(String[] args) throws Exception {
        // 入力
        MyScanner sc = new MyScanner(System.in);
        String S = sc.nextString();

        // 初期化

        // 主処理
        String tmp = S;
        tmp = tmp.replaceAll("eraser", "");
        tmp = tmp.replaceAll("erase", "");
        tmp = tmp.replaceAll("dreamer", "");
        tmp = tmp.replaceAll("dream", "");
        String ans = "".equals(tmp) ? "YES" : "NO";

        // 出力
        System.out.println(ans);
    }

    static class MyScanner {
        BufferedReader br;
        // 標準入力から入力値を取得
        MyScanner(InputStream in) {
            br = new BufferedReader(new InputStreamReader(in));
        }
        // 標準入力を文字列で取得
        public String nextString() throws IOException {
            return br.readLine();
        }
        // 標準入力を文字列の配列で取得
        public String[] nextStringArray() throws IOException {
            return nextString().split(" ");
        }
        // 標準入力を数値で取得
        public int nextInt() throws IOException {
            return Integer.parseInt(nextString());
        }
        // 標準入力を数値の配列で取得
        public int[] nextIntArray() throws IOException {
            String[] strArr = nextStringArray();
            int[] intArr = new int[strArr.length];
            for(int i = 0; i < strArr.length; i++) {
                intArr[i] = Integer.parseInt(strArr[i]);
            }
            return intArr;
        }
    }

} Main public static void main(String[] args) throws Exception {
        // 入力
        MyScanner sc = new MyScanner(System.in);
        String S = sc.nextString();

        // 初期化

        // 主処理
        String tmp = S;
        tmp = tmp.replaceAll("eraser", "");
        tmp = tmp.replaceAll("erase", "");
        tmp = tmp.replaceAll("dreamer", "");
        tmp = tmp.replaceAll("dream", "");
        String ans = "".equals(tmp) ? "YES" : "NO";

        // 出力
        System.out.println(ans);
    } main {
        // 入力
        MyScanner sc = new MyScanner(System.in);
        String S = sc.nextString();

        // 初期化

        // 主処理
        String tmp = S;
        tmp = tmp.replaceAll("eraser", "");
        tmp = tmp.replaceAll("erase", "");
        tmp = tmp.replaceAll("dreamer", "");
        tmp = tmp.replaceAll("dream", "");
        String ans = "".equals(tmp) ? "YES" : "NO";

        // 出力
        System.out.println(ans);
    } MyScanner sc = new MyScanner(System.in); sc new MyScanner(System.in) String S = sc.nextString(); S sc.nextString() sc.nextString sc String tmp = S; tmp S tmp = tmp.replaceAll("eraser", "") tmp tmp.replaceAll("eraser", "") tmp.replaceAll tmp "eraser" "" tmp = tmp.replaceAll("erase", "") tmp tmp.replaceAll("erase", "") tmp.replaceAll tmp "erase" "" tmp = tmp.replaceAll("dreamer", "") tmp tmp.replaceAll("dreamer", "") tmp.replaceAll tmp "dreamer" "" tmp = tmp.replaceAll("dream", "") tmp tmp.replaceAll("dream", "") tmp.replaceAll tmp "dream" "" String ans = "".equals(tmp) ? "YES" : "NO"; ans "".equals(tmp) ? "YES" : "NO" "".equals(tmp) "".equals "" tmp "YES" "NO" System.out.println(ans) System.out.println System.out System System.out ans String[] args args static class MyScanner {
        BufferedReader br;
        // 標準入力から入力値を取得
        MyScanner(InputStream in) {
            br = new BufferedReader(new InputStreamReader(in));
        }
        // 標準入力を文字列で取得
        public String nextString() throws IOException {
            return br.readLine();
        }
        // 標準入力を文字列の配列で取得
        public String[] nextStringArray() throws IOException {
            return nextString().split(" ");
        }
        // 標準入力を数値で取得
        public int nextInt() throws IOException {
            return Integer.parseInt(nextString());
        }
        // 標準入力を数値の配列で取得
        public int[] nextIntArray() throws IOException {
            String[] strArr = nextStringArray();
            int[] intArr = new int[strArr.length];
            for(int i = 0; i < strArr.length; i++) {
                intArr[i] = Integer.parseInt(strArr[i]);
            }
            return intArr;
        }
    } MyScanner BufferedReader br; br // 標準入力から入力値を取得
        MyScanner(InputStream in) {
            br = new BufferedReader(new InputStreamReader(in));
        } MyScanner {
            br = new BufferedReader(new InputStreamReader(in));
        } br = new BufferedReader(new InputStreamReader(in)) br new BufferedReader(new InputStreamReader(in)) InputStream in in // 標準入力を文字列で取得
        public String nextString() throws IOException {
            return br.readLine();
        } nextString {
            return br.readLine();
        } return br.readLine(); br.readLine() br.readLine br // 標準入力を文字列の配列で取得
        public String[] nextStringArray() throws IOException {
            return nextString().split(" ");
        } nextStringArray {
            return nextString().split(" ");
        } return nextString().split(" "); nextString().split(" ") nextString().split nextString() nextString " " // 標準入力を数値で取得
        public int nextInt() throws IOException {
            return Integer.parseInt(nextString());
        } nextInt {
            return Integer.parseInt(nextString());
        } return Integer.parseInt(nextString()); Integer.parseInt(nextString()) Integer.parseInt Integer nextString() nextString // 標準入力を数値の配列で取得
        public int[] nextIntArray() throws IOException {
            String[] strArr = nextStringArray();
            int[] intArr = new int[strArr.length];
            for(int i = 0; i < strArr.length; i++) {
                intArr[i] = Integer.parseInt(strArr[i]);
            }
            return intArr;
        } nextIntArray {
            String[] strArr = nextStringArray();
            int[] intArr = new int[strArr.length];
            for(int i = 0; i < strArr.length; i++) {
                intArr[i] = Integer.parseInt(strArr[i]);
            }
            return intArr;
        } String[] strArr = nextStringArray(); strArr nextStringArray() nextStringArray int[] intArr = new int[strArr.length]; intArr new int[strArr.length] strArr.length strArr strArr.length for(int i = 0; i < strArr.length; i++) {
                intArr[i] = Integer.parseInt(strArr[i]);
            } int i = 0; int i = 0; i 0 i < strArr.length i strArr.length strArr strArr.length i++ i++ i {
                intArr[i] = Integer.parseInt(strArr[i]);
            } {
                intArr[i] = Integer.parseInt(strArr[i]);
            } intArr[i] = Integer.parseInt(strArr[i]) intArr[i] intArr i Integer.parseInt(strArr[i]) Integer.parseInt Integer strArr[i] strArr i return intArr; intArr public class Main {
    public static void main(String[] args) throws Exception {
        // 入力
        MyScanner sc = new MyScanner(System.in);
        String S = sc.nextString();

        // 初期化

        // 主処理
        String tmp = S;
        tmp = tmp.replaceAll("eraser", "");
        tmp = tmp.replaceAll("erase", "");
        tmp = tmp.replaceAll("dreamer", "");
        tmp = tmp.replaceAll("dream", "");
        String ans = "".equals(tmp) ? "YES" : "NO";

        // 出力
        System.out.println(ans);
    }

    static class MyScanner {
        BufferedReader br;
        // 標準入力から入力値を取得
        MyScanner(InputStream in) {
            br = new BufferedReader(new InputStreamReader(in));
        }
        // 標準入力を文字列で取得
        public String nextString() throws IOException {
            return br.readLine();
        }
        // 標準入力を文字列の配列で取得
        public String[] nextStringArray() throws IOException {
            return nextString().split(" ");
        }
        // 標準入力を数値で取得
        public int nextInt() throws IOException {
            return Integer.parseInt(nextString());
        }
        // 標準入力を数値の配列で取得
        public int[] nextIntArray() throws IOException {
            String[] strArr = nextStringArray();
            int[] intArr = new int[strArr.length];
            for(int i = 0; i < strArr.length; i++) {
                intArr[i] = Integer.parseInt(strArr[i]);
            }
            return intArr;
        }
    }

} public class Main {
    public static void main(String[] args) throws Exception {
        // 入力
        MyScanner sc = new MyScanner(System.in);
        String S = sc.nextString();

        // 初期化

        // 主処理
        String tmp = S;
        tmp = tmp.replaceAll("eraser", "");
        tmp = tmp.replaceAll("erase", "");
        tmp = tmp.replaceAll("dreamer", "");
        tmp = tmp.replaceAll("dream", "");
        String ans = "".equals(tmp) ? "YES" : "NO";

        // 出力
        System.out.println(ans);
    }

    static class MyScanner {
        BufferedReader br;
        // 標準入力から入力値を取得
        MyScanner(InputStream in) {
            br = new BufferedReader(new InputStreamReader(in));
        }
        // 標準入力を文字列で取得
        public String nextString() throws IOException {
            return br.readLine();
        }
        // 標準入力を文字列の配列で取得
        public String[] nextStringArray() throws IOException {
            return nextString().split(" ");
        }
        // 標準入力を数値で取得
        public int nextInt() throws IOException {
            return Integer.parseInt(nextString());
        }
        // 標準入力を数値の配列で取得
        public int[] nextIntArray() throws IOException {
            String[] strArr = nextStringArray();
            int[] intArr = new int[strArr.length];
            for(int i = 0; i < strArr.length; i++) {
                intArr[i] = Integer.parseInt(strArr[i]);
            }
            return intArr;
        }
    }

} Main
import java.io.*;

public class Main {
    public static void main(String[] args) throws Exception {
        // 入力
        MyScanner sc = new MyScanner(System.in);
        String S = sc.nextString();

        // 初期化

        // 主処理
        String tmp = S;
        tmp = tmp.replaceAll("eraser", "");
        tmp = tmp.replaceAll("erase", "");
        tmp = tmp.replaceAll("dreamer", "");
        tmp = tmp.replaceAll("dream", "");
        String ans = "".equals(tmp) ? "YES" : "NO";

        // 出力
        System.out.println(ans);
    }

    static class MyScanner {
        BufferedReader br;
        // 標準入力から入力値を取得
        MyScanner(InputStream in) {
            br = new BufferedReader(new InputStreamReader(in));
        }
        // 標準入力を文字列で取得
        public String nextString() throws IOException {
            return br.readLine();
        }
        // 標準入力を文字列の配列で取得
        public String[] nextStringArray() throws IOException {
            return nextString().split(" ");
        }
        // 標準入力を数値で取得
        public int nextInt() throws IOException {
            return Integer.parseInt(nextString());
        }
        // 標準入力を数値の配列で取得
        public int[] nextIntArray() throws IOException {
            String[] strArr = nextStringArray();
            int[] intArr = new int[strArr.length];
            for(int i = 0; i < strArr.length; i++) {
                intArr[i] = Integer.parseInt(strArr[i]);
            }
            return intArr;
        }
    }

}
