import java.util.*;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String devider[] = {"maerd","remaerd","esare","resare"};
        String str = new StringBuffer(sc.nextLine()).reverse().toString();
        boolean flag1 = true;
        for(int i=0;i<str.length();){
            boolean flag2 = false;
            for(int j=0;j<4;j++){
                String d = devider[j];
                String d2 = str.substring(i,i);
                if((i+d.length())<=str.length()){
                    d2 = str.substring(i,i+d.length());
                }
                if(d2.equals(d)){
                    flag2 = true;
                    i += d.length();
                }
            }
            if(!flag2){
                flag1 = false;
                break;
            }
        }
        System.out.println(flag1 ? "YES":"NO");
    }
} import java.util.*; util.* java class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String devider[] = {"maerd","remaerd","esare","resare"};
        String str = new StringBuffer(sc.nextLine()).reverse().toString();
        boolean flag1 = true;
        for(int i=0;i<str.length();){
            boolean flag2 = false;
            for(int j=0;j<4;j++){
                String d = devider[j];
                String d2 = str.substring(i,i);
                if((i+d.length())<=str.length()){
                    d2 = str.substring(i,i+d.length());
                }
                if(d2.equals(d)){
                    flag2 = true;
                    i += d.length();
                }
            }
            if(!flag2){
                flag1 = false;
                break;
            }
        }
        System.out.println(flag1 ? "YES":"NO");
    }
} Main public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String devider[] = {"maerd","remaerd","esare","resare"};
        String str = new StringBuffer(sc.nextLine()).reverse().toString();
        boolean flag1 = true;
        for(int i=0;i<str.length();){
            boolean flag2 = false;
            for(int j=0;j<4;j++){
                String d = devider[j];
                String d2 = str.substring(i,i);
                if((i+d.length())<=str.length()){
                    d2 = str.substring(i,i+d.length());
                }
                if(d2.equals(d)){
                    flag2 = true;
                    i += d.length();
                }
            }
            if(!flag2){
                flag1 = false;
                break;
            }
        }
        System.out.println(flag1 ? "YES":"NO");
    } main {
        Scanner sc = new Scanner(System.in);
        String devider[] = {"maerd","remaerd","esare","resare"};
        String str = new StringBuffer(sc.nextLine()).reverse().toString();
        boolean flag1 = true;
        for(int i=0;i<str.length();){
            boolean flag2 = false;
            for(int j=0;j<4;j++){
                String d = devider[j];
                String d2 = str.substring(i,i);
                if((i+d.length())<=str.length()){
                    d2 = str.substring(i,i+d.length());
                }
                if(d2.equals(d)){
                    flag2 = true;
                    i += d.length();
                }
            }
            if(!flag2){
                flag1 = false;
                break;
            }
        }
        System.out.println(flag1 ? "YES":"NO");
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String devider[] = {"maerd","remaerd","esare","resare"}; devider {"maerd","remaerd","esare","resare"} "maerd" "remaerd" "esare" "resare" String str = new StringBuffer(sc.nextLine()).reverse().toString(); str new StringBuffer(sc.nextLine()).reverse().toString() new StringBuffer(sc.nextLine()).reverse().toString new StringBuffer(sc.nextLine()).reverse() new StringBuffer(sc.nextLine()).reverse new StringBuffer(sc.nextLine()) boolean flag1 = true; flag1 true for(int i=0;i<str.length();){
            boolean flag2 = false;
            for(int j=0;j<4;j++){
                String d = devider[j];
                String d2 = str.substring(i,i);
                if((i+d.length())<=str.length()){
                    d2 = str.substring(i,i+d.length());
                }
                if(d2.equals(d)){
                    flag2 = true;
                    i += d.length();
                }
            }
            if(!flag2){
                flag1 = false;
                break;
            }
        } int i=0; int i=0; i 0 i<str.length() i str.length() str.length str {
            boolean flag2 = false;
            for(int j=0;j<4;j++){
                String d = devider[j];
                String d2 = str.substring(i,i);
                if((i+d.length())<=str.length()){
                    d2 = str.substring(i,i+d.length());
                }
                if(d2.equals(d)){
                    flag2 = true;
                    i += d.length();
                }
            }
            if(!flag2){
                flag1 = false;
                break;
            }
        } {
            boolean flag2 = false;
            for(int j=0;j<4;j++){
                String d = devider[j];
                String d2 = str.substring(i,i);
                if((i+d.length())<=str.length()){
                    d2 = str.substring(i,i+d.length());
                }
                if(d2.equals(d)){
                    flag2 = true;
                    i += d.length();
                }
            }
            if(!flag2){
                flag1 = false;
                break;
            }
        } boolean flag2 = false; flag2 false for(int j=0;j<4;j++){
                String d = devider[j];
                String d2 = str.substring(i,i);
                if((i+d.length())<=str.length()){
                    d2 = str.substring(i,i+d.length());
                }
                if(d2.equals(d)){
                    flag2 = true;
                    i += d.length();
                }
            } int j=0; int j=0; j 0 j<4 j 4 j++ j++ j {
                String d = devider[j];
                String d2 = str.substring(i,i);
                if((i+d.length())<=str.length()){
                    d2 = str.substring(i,i+d.length());
                }
                if(d2.equals(d)){
                    flag2 = true;
                    i += d.length();
                }
            } {
                String d = devider[j];
                String d2 = str.substring(i,i);
                if((i+d.length())<=str.length()){
                    d2 = str.substring(i,i+d.length());
                }
                if(d2.equals(d)){
                    flag2 = true;
                    i += d.length();
                }
            } String d = devider[j]; d devider[j] devider j String d2 = str.substring(i,i); d2 str.substring(i,i) str.substring str i i if((i+d.length())<=str.length()){
                    d2 = str.substring(i,i+d.length());
                } (i+d.length())<=str.length() (i+d.length()) i d.length() d.length d str.length() str.length str {
                    d2 = str.substring(i,i+d.length());
                } d2 = str.substring(i,i+d.length()) d2 str.substring(i,i+d.length()) str.substring str i i+d.length() i d.length() d.length d if(d2.equals(d)){
                    flag2 = true;
                    i += d.length();
                } d2.equals(d) d2.equals d2 d {
                    flag2 = true;
                    i += d.length();
                } flag2 = true flag2 true i += d.length() i d.length() d.length d if(!flag2){
                flag1 = false;
                break;
            } !flag2 flag2 {
                flag1 = false;
                break;
            } flag1 = false flag1 false break; System.out.println(flag1 ? "YES":"NO") System.out.println System.out System System.out flag1 ? "YES":"NO" flag1 "YES" "NO" String[] args args
import java.util.*;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String devider[] = {"maerd","remaerd","esare","resare"};
        String str = new StringBuffer(sc.nextLine()).reverse().toString();
        boolean flag1 = true;
        for(int i=0;i<str.length();){
            boolean flag2 = false;
            for(int j=0;j<4;j++){
                String d = devider[j];
                String d2 = str.substring(i,i);
                if((i+d.length())<=str.length()){
                    d2 = str.substring(i,i+d.length());
                }
                if(d2.equals(d)){
                    flag2 = true;
                    i += d.length();
                }
            }
            if(!flag2){
                flag1 = false;
                break;
            }
        }
        System.out.println(flag1 ? "YES":"NO");
    }
}