import java.util.Scanner;

public class Main {

	public static void main(String[] args){

		final String DREAM		= "dream";
		final String DREAMER	= "dreamer";
		final String ERASE		= "erase";
		final String ERASER		= "eraser";

		// TODO ABC_049_C
		Scanner sc = new Scanner(System.in);
		// 文字列の入力
		String S = sc.nextLine();
		// Scannerクラスのインスタンスをクローズ
		sc.close();

//		String T = "";
		String res = "YES";

		while(S.length() > 0) {

//			switch(S) {
//				case DREAM:
//					break;
//				case DREAMER:
//					break;
//				case ERASE:
//					break;
//				case ERASER:
//					break;
//			}
			if(S.length() < 5) {
				res = "NO";
				break;
			}
			if(DREAM.equals(S)) {
				break;
			} else if(DREAMER.equals(S)) {
				break;
			} else if(ERASE.equals(S)) {
				break;
			} else if(ERASER.equals(S)) {
				break;
			}

			if(S.substring(0,1).equals("d")) {
				if(S.substring(0,5).equals("dream")) {
					if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else if(S.substring(0,1).equals("e")) {
				if(S.substring(0,5).equals("erase")) {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else {
				res = "NO";
				break;
			}

		}

		System.out.println(res);
	}
} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args){

		final String DREAM		= "dream";
		final String DREAMER	= "dreamer";
		final String ERASE		= "erase";
		final String ERASER		= "eraser";

		// TODO ABC_049_C
		Scanner sc = new Scanner(System.in);
		// 文字列の入力
		String S = sc.nextLine();
		// Scannerクラスのインスタンスをクローズ
		sc.close();

//		String T = "";
		String res = "YES";

		while(S.length() > 0) {

//			switch(S) {
//				case DREAM:
//					break;
//				case DREAMER:
//					break;
//				case ERASE:
//					break;
//				case ERASER:
//					break;
//			}
			if(S.length() < 5) {
				res = "NO";
				break;
			}
			if(DREAM.equals(S)) {
				break;
			} else if(DREAMER.equals(S)) {
				break;
			} else if(ERASE.equals(S)) {
				break;
			} else if(ERASER.equals(S)) {
				break;
			}

			if(S.substring(0,1).equals("d")) {
				if(S.substring(0,5).equals("dream")) {
					if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else if(S.substring(0,1).equals("e")) {
				if(S.substring(0,5).equals("erase")) {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else {
				res = "NO";
				break;
			}

		}

		System.out.println(res);
	}
} Main public static void main(String[] args){

		final String DREAM		= "dream";
		final String DREAMER	= "dreamer";
		final String ERASE		= "erase";
		final String ERASER		= "eraser";

		// TODO ABC_049_C
		Scanner sc = new Scanner(System.in);
		// 文字列の入力
		String S = sc.nextLine();
		// Scannerクラスのインスタンスをクローズ
		sc.close();

//		String T = "";
		String res = "YES";

		while(S.length() > 0) {

//			switch(S) {
//				case DREAM:
//					break;
//				case DREAMER:
//					break;
//				case ERASE:
//					break;
//				case ERASER:
//					break;
//			}
			if(S.length() < 5) {
				res = "NO";
				break;
			}
			if(DREAM.equals(S)) {
				break;
			} else if(DREAMER.equals(S)) {
				break;
			} else if(ERASE.equals(S)) {
				break;
			} else if(ERASER.equals(S)) {
				break;
			}

			if(S.substring(0,1).equals("d")) {
				if(S.substring(0,5).equals("dream")) {
					if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else if(S.substring(0,1).equals("e")) {
				if(S.substring(0,5).equals("erase")) {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else {
				res = "NO";
				break;
			}

		}

		System.out.println(res);
	} main {

		final String DREAM		= "dream";
		final String DREAMER	= "dreamer";
		final String ERASE		= "erase";
		final String ERASER		= "eraser";

		// TODO ABC_049_C
		Scanner sc = new Scanner(System.in);
		// 文字列の入力
		String S = sc.nextLine();
		// Scannerクラスのインスタンスをクローズ
		sc.close();

//		String T = "";
		String res = "YES";

		while(S.length() > 0) {

//			switch(S) {
//				case DREAM:
//					break;
//				case DREAMER:
//					break;
//				case ERASE:
//					break;
//				case ERASER:
//					break;
//			}
			if(S.length() < 5) {
				res = "NO";
				break;
			}
			if(DREAM.equals(S)) {
				break;
			} else if(DREAMER.equals(S)) {
				break;
			} else if(ERASE.equals(S)) {
				break;
			} else if(ERASER.equals(S)) {
				break;
			}

			if(S.substring(0,1).equals("d")) {
				if(S.substring(0,5).equals("dream")) {
					if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else if(S.substring(0,1).equals("e")) {
				if(S.substring(0,5).equals("erase")) {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else {
				res = "NO";
				break;
			}

		}

		System.out.println(res);
	} final String DREAM		= "dream"; DREAM "dream" final String DREAMER	= "dreamer"; DREAMER "dreamer" final String ERASE		= "erase"; ERASE "erase" final String ERASER		= "eraser"; ERASER "eraser" Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String S = sc.nextLine(); S sc.nextLine() sc.nextLine sc sc.close() sc.close sc String res = "YES"; res "YES" while(S.length() > 0) {

//			switch(S) {
//				case DREAM:
//					break;
//				case DREAMER:
//					break;
//				case ERASE:
//					break;
//				case ERASER:
//					break;
//			}
			if(S.length() < 5) {
				res = "NO";
				break;
			}
			if(DREAM.equals(S)) {
				break;
			} else if(DREAMER.equals(S)) {
				break;
			} else if(ERASE.equals(S)) {
				break;
			} else if(ERASER.equals(S)) {
				break;
			}

			if(S.substring(0,1).equals("d")) {
				if(S.substring(0,5).equals("dream")) {
					if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else if(S.substring(0,1).equals("e")) {
				if(S.substring(0,5).equals("erase")) {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else {
				res = "NO";
				break;
			}

		} S.length() > 0 S.length() S.length S 0 {

//			switch(S) {
//				case DREAM:
//					break;
//				case DREAMER:
//					break;
//				case ERASE:
//					break;
//				case ERASER:
//					break;
//			}
			if(S.length() < 5) {
				res = "NO";
				break;
			}
			if(DREAM.equals(S)) {
				break;
			} else if(DREAMER.equals(S)) {
				break;
			} else if(ERASE.equals(S)) {
				break;
			} else if(ERASER.equals(S)) {
				break;
			}

			if(S.substring(0,1).equals("d")) {
				if(S.substring(0,5).equals("dream")) {
					if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else if(S.substring(0,1).equals("e")) {
				if(S.substring(0,5).equals("erase")) {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else {
				res = "NO";
				break;
			}

		} if(S.length() < 5) {
				res = "NO";
				break;
			} S.length() < 5 S.length() S.length S 5 {
				res = "NO";
				break;
			} res = "NO" res "NO" break; if(DREAM.equals(S)) {
				break;
			} else if(DREAMER.equals(S)) {
				break;
			} else if(ERASE.equals(S)) {
				break;
			} else if(ERASER.equals(S)) {
				break;
			} DREAM.equals(S) DREAM.equals DREAM S {
				break;
			} break; if(DREAMER.equals(S)) {
				break;
			} else if(ERASE.equals(S)) {
				break;
			} else if(ERASER.equals(S)) {
				break;
			} DREAMER.equals(S) DREAMER.equals DREAMER S {
				break;
			} break; if(ERASE.equals(S)) {
				break;
			} else if(ERASER.equals(S)) {
				break;
			} ERASE.equals(S) ERASE.equals ERASE S {
				break;
			} break; if(ERASER.equals(S)) {
				break;
			} ERASER.equals(S) ERASER.equals ERASER S {
				break;
			} break; if(S.substring(0,1).equals("d")) {
				if(S.substring(0,5).equals("dream")) {
					if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else if(S.substring(0,1).equals("e")) {
				if(S.substring(0,5).equals("erase")) {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else {
				res = "NO";
				break;
			} S.substring(0,1).equals("d") S.substring(0,1).equals S.substring(0,1) S.substring S 0 1 "d" {
				if(S.substring(0,5).equals("dream")) {
					if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			} if(S.substring(0,5).equals("dream")) {
					if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				} S.substring(0,5).equals("dream") S.substring(0,5).equals S.substring(0,5) S.substring S 0 5 "dream" {
					if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					}
				} if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					} S.substring(5,7).equals("er") S.substring(5,7).equals S.substring(5,7) S.substring S 5 7 "er" {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						} S.substring(7,8).equals("a") S.substring(7,8).equals S.substring(7,8) S.substring S 7 8 "a" {
							// dreamerase
							S = S.substring(5);
							continue;
						} S = S.substring(5) S S.substring(5) S.substring S 5 continue; {
							// deramer
							S = S.substring(7);
							continue;
						} S = S.substring(7) S S.substring(7) S.substring S 7 continue; {
						// dream
						S = S.substring(5);
						continue;
					} S = S.substring(5) S S.substring(5) S.substring S 5 continue; {
					res = "NO";
					break;
				} res = "NO" res "NO" break; if(S.substring(0,1).equals("e")) {
				if(S.substring(0,5).equals("erase")) {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else {
				res = "NO";
				break;
			} S.substring(0,1).equals("e") S.substring(0,1).equals S.substring(0,1) S.substring S 0 1 "e" {
				if(S.substring(0,5).equals("erase")) {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			} if(S.substring(0,5).equals("erase")) {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				} S.substring(0,5).equals("erase") S.substring(0,5).equals S.substring(0,5) S.substring S 0 5 "erase" {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					} S.substring(5,6).equals("r") S.substring(5,6).equals S.substring(5,6) S.substring S 5 6 "r" {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} S = S.substring(6) S S.substring(6) S.substring S 6 continue; {
						// erase
						S = S.substring(5);
						continue;
					} S = S.substring(5) S S.substring(5) S.substring S 5 continue; {
					res = "NO";
					break;
				} res = "NO" res "NO" break; {
				res = "NO";
				break;
			} res = "NO" res "NO" break; System.out.println(res) System.out.println System.out System System.out res String[] args args public class Main {

	public static void main(String[] args){

		final String DREAM		= "dream";
		final String DREAMER	= "dreamer";
		final String ERASE		= "erase";
		final String ERASER		= "eraser";

		// TODO ABC_049_C
		Scanner sc = new Scanner(System.in);
		// 文字列の入力
		String S = sc.nextLine();
		// Scannerクラスのインスタンスをクローズ
		sc.close();

//		String T = "";
		String res = "YES";

		while(S.length() > 0) {

//			switch(S) {
//				case DREAM:
//					break;
//				case DREAMER:
//					break;
//				case ERASE:
//					break;
//				case ERASER:
//					break;
//			}
			if(S.length() < 5) {
				res = "NO";
				break;
			}
			if(DREAM.equals(S)) {
				break;
			} else if(DREAMER.equals(S)) {
				break;
			} else if(ERASE.equals(S)) {
				break;
			} else if(ERASER.equals(S)) {
				break;
			}

			if(S.substring(0,1).equals("d")) {
				if(S.substring(0,5).equals("dream")) {
					if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else if(S.substring(0,1).equals("e")) {
				if(S.substring(0,5).equals("erase")) {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else {
				res = "NO";
				break;
			}

		}

		System.out.println(res);
	}
} public class Main {

	public static void main(String[] args){

		final String DREAM		= "dream";
		final String DREAMER	= "dreamer";
		final String ERASE		= "erase";
		final String ERASER		= "eraser";

		// TODO ABC_049_C
		Scanner sc = new Scanner(System.in);
		// 文字列の入力
		String S = sc.nextLine();
		// Scannerクラスのインスタンスをクローズ
		sc.close();

//		String T = "";
		String res = "YES";

		while(S.length() > 0) {

//			switch(S) {
//				case DREAM:
//					break;
//				case DREAMER:
//					break;
//				case ERASE:
//					break;
//				case ERASER:
//					break;
//			}
			if(S.length() < 5) {
				res = "NO";
				break;
			}
			if(DREAM.equals(S)) {
				break;
			} else if(DREAMER.equals(S)) {
				break;
			} else if(ERASE.equals(S)) {
				break;
			} else if(ERASER.equals(S)) {
				break;
			}

			if(S.substring(0,1).equals("d")) {
				if(S.substring(0,5).equals("dream")) {
					if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else if(S.substring(0,1).equals("e")) {
				if(S.substring(0,5).equals("erase")) {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else {
				res = "NO";
				break;
			}

		}

		System.out.println(res);
	}
} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args){

		final String DREAM		= "dream";
		final String DREAMER	= "dreamer";
		final String ERASE		= "erase";
		final String ERASER		= "eraser";

		// TODO ABC_049_C
		Scanner sc = new Scanner(System.in);
		// 文字列の入力
		String S = sc.nextLine();
		// Scannerクラスのインスタンスをクローズ
		sc.close();

//		String T = "";
		String res = "YES";

		while(S.length() > 0) {

//			switch(S) {
//				case DREAM:
//					break;
//				case DREAMER:
//					break;
//				case ERASE:
//					break;
//				case ERASER:
//					break;
//			}
			if(S.length() < 5) {
				res = "NO";
				break;
			}
			if(DREAM.equals(S)) {
				break;
			} else if(DREAMER.equals(S)) {
				break;
			} else if(ERASE.equals(S)) {
				break;
			} else if(ERASER.equals(S)) {
				break;
			}

			if(S.substring(0,1).equals("d")) {
				if(S.substring(0,5).equals("dream")) {
					if(S.substring(5,7).equals("er")) {
						if(S.substring(7,8).equals("a")) {
							// dreamerase
							S = S.substring(5);
							continue;
						} else {
							// deramer
							S = S.substring(7);
							continue;
						}
					} else {
						// dream
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else if(S.substring(0,1).equals("e")) {
				if(S.substring(0,5).equals("erase")) {
					if(S.substring(5,6).equals("r")) {
						// eraser
						// deramer
						S = S.substring(6);
						continue;
					} else {
						// erase
						S = S.substring(5);
						continue;
					}
				} else {
					res = "NO";
					break;
				}
			}
			else {
				res = "NO";
				break;
			}

		}

		System.out.println(res);
	}
}
