import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String s = sc.next();
		char[] ary = new char[s.length()];
		for (int i = 0; i < s.length(); i++) {
			ary[i] = s.charAt(i);
		}

		int index = s.length();
		char[] dreamer = { 'r', 'e', 'm', 'a', 'e', 'r', 'd' };
		char[] dream = { 'm', 'a', 'e', 'r', 'd', '&', '&' };
		char[] eraser = { 'r', 'e', 's', 'a', 'r', 'e', '&' };
		char[] erase = { 'e', 's', 'a', 'r', 'e', '&', '&' };

		int iDreamer = 0;
		int iDream = 0;
		int iEraser = 0;
		int iErase = 0;

		while (true) {
			if (index == 0) {
				System.out.println("YES");
				break;
			} else if (index < 5) {
				System.out.println("NO");
				break;
			}
			iDreamer = 0;
			iDream = 0;
			iEraser = 0;
			iErase = 0;
			int dex = 0;
			for (int i = index - 1; i >= index - 7 && i >= 0; i--) {
				if (dreamer[dex] == ary[i]) {
					iDreamer++;
				}
				if (dream[dex] == ary[i]) {
					iDream++;
				}
				if (eraser[dex] == ary[i]) {
					iEraser++;
				}
				if (erase[dex] == ary[i]) {
					iErase++;
				}
				dex++;
			}
			if (iDreamer != 7) {
				iDreamer = 0;
			}
			if (iDream != 5) {
				iDream = 0;
			}
			if (iEraser != 6) {
				iEraser = 0;
			}
			if (iErase != 5) {
				iErase = 0;
			}
			int m = Math.max(Math.max(iErase, iEraser), Math.max(iDreamer, iDream));
			if (m == 0) {
				System.out.println("NO");
				break;
			}
			index -= m;

		}
		return;
	}
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String s = sc.next();
		char[] ary = new char[s.length()];
		for (int i = 0; i < s.length(); i++) {
			ary[i] = s.charAt(i);
		}

		int index = s.length();
		char[] dreamer = { 'r', 'e', 'm', 'a', 'e', 'r', 'd' };
		char[] dream = { 'm', 'a', 'e', 'r', 'd', '&', '&' };
		char[] eraser = { 'r', 'e', 's', 'a', 'r', 'e', '&' };
		char[] erase = { 'e', 's', 'a', 'r', 'e', '&', '&' };

		int iDreamer = 0;
		int iDream = 0;
		int iEraser = 0;
		int iErase = 0;

		while (true) {
			if (index == 0) {
				System.out.println("YES");
				break;
			} else if (index < 5) {
				System.out.println("NO");
				break;
			}
			iDreamer = 0;
			iDream = 0;
			iEraser = 0;
			iErase = 0;
			int dex = 0;
			for (int i = index - 1; i >= index - 7 && i >= 0; i--) {
				if (dreamer[dex] == ary[i]) {
					iDreamer++;
				}
				if (dream[dex] == ary[i]) {
					iDream++;
				}
				if (eraser[dex] == ary[i]) {
					iEraser++;
				}
				if (erase[dex] == ary[i]) {
					iErase++;
				}
				dex++;
			}
			if (iDreamer != 7) {
				iDreamer = 0;
			}
			if (iDream != 5) {
				iDream = 0;
			}
			if (iEraser != 6) {
				iEraser = 0;
			}
			if (iErase != 5) {
				iErase = 0;
			}
			int m = Math.max(Math.max(iErase, iEraser), Math.max(iDreamer, iDream));
			if (m == 0) {
				System.out.println("NO");
				break;
			}
			index -= m;

		}
		return;
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String s = sc.next();
		char[] ary = new char[s.length()];
		for (int i = 0; i < s.length(); i++) {
			ary[i] = s.charAt(i);
		}

		int index = s.length();
		char[] dreamer = { 'r', 'e', 'm', 'a', 'e', 'r', 'd' };
		char[] dream = { 'm', 'a', 'e', 'r', 'd', '&', '&' };
		char[] eraser = { 'r', 'e', 's', 'a', 'r', 'e', '&' };
		char[] erase = { 'e', 's', 'a', 'r', 'e', '&', '&' };

		int iDreamer = 0;
		int iDream = 0;
		int iEraser = 0;
		int iErase = 0;

		while (true) {
			if (index == 0) {
				System.out.println("YES");
				break;
			} else if (index < 5) {
				System.out.println("NO");
				break;
			}
			iDreamer = 0;
			iDream = 0;
			iEraser = 0;
			iErase = 0;
			int dex = 0;
			for (int i = index - 1; i >= index - 7 && i >= 0; i--) {
				if (dreamer[dex] == ary[i]) {
					iDreamer++;
				}
				if (dream[dex] == ary[i]) {
					iDream++;
				}
				if (eraser[dex] == ary[i]) {
					iEraser++;
				}
				if (erase[dex] == ary[i]) {
					iErase++;
				}
				dex++;
			}
			if (iDreamer != 7) {
				iDreamer = 0;
			}
			if (iDream != 5) {
				iDream = 0;
			}
			if (iEraser != 6) {
				iEraser = 0;
			}
			if (iErase != 5) {
				iErase = 0;
			}
			int m = Math.max(Math.max(iErase, iEraser), Math.max(iDreamer, iDream));
			if (m == 0) {
				System.out.println("NO");
				break;
			}
			index -= m;

		}
		return;
	} main {
		Scanner sc = new Scanner(System.in);
		String s = sc.next();
		char[] ary = new char[s.length()];
		for (int i = 0; i < s.length(); i++) {
			ary[i] = s.charAt(i);
		}

		int index = s.length();
		char[] dreamer = { 'r', 'e', 'm', 'a', 'e', 'r', 'd' };
		char[] dream = { 'm', 'a', 'e', 'r', 'd', '&', '&' };
		char[] eraser = { 'r', 'e', 's', 'a', 'r', 'e', '&' };
		char[] erase = { 'e', 's', 'a', 'r', 'e', '&', '&' };

		int iDreamer = 0;
		int iDream = 0;
		int iEraser = 0;
		int iErase = 0;

		while (true) {
			if (index == 0) {
				System.out.println("YES");
				break;
			} else if (index < 5) {
				System.out.println("NO");
				break;
			}
			iDreamer = 0;
			iDream = 0;
			iEraser = 0;
			iErase = 0;
			int dex = 0;
			for (int i = index - 1; i >= index - 7 && i >= 0; i--) {
				if (dreamer[dex] == ary[i]) {
					iDreamer++;
				}
				if (dream[dex] == ary[i]) {
					iDream++;
				}
				if (eraser[dex] == ary[i]) {
					iEraser++;
				}
				if (erase[dex] == ary[i]) {
					iErase++;
				}
				dex++;
			}
			if (iDreamer != 7) {
				iDreamer = 0;
			}
			if (iDream != 5) {
				iDream = 0;
			}
			if (iEraser != 6) {
				iEraser = 0;
			}
			if (iErase != 5) {
				iErase = 0;
			}
			int m = Math.max(Math.max(iErase, iEraser), Math.max(iDreamer, iDream));
			if (m == 0) {
				System.out.println("NO");
				break;
			}
			index -= m;

		}
		return;
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String s = sc.next(); s sc.next() sc.next sc char[] ary = new char[s.length()]; ary new char[s.length()] s.length() s.length s for (int i = 0; i < s.length(); i++) {
			ary[i] = s.charAt(i);
		} int i = 0; int i = 0; i 0 i < s.length() i s.length() s.length s i++ i++ i {
			ary[i] = s.charAt(i);
		} {
			ary[i] = s.charAt(i);
		} ary[i] = s.charAt(i) ary[i] ary i s.charAt(i) s.charAt s i int index = s.length(); index s.length() s.length s char[] dreamer = { 'r', 'e', 'm', 'a', 'e', 'r', 'd' }; dreamer { 'r', 'e', 'm', 'a', 'e', 'r', 'd' } 'r' 'e' 'm' 'a' 'e' 'r' 'd' char[] dream = { 'm', 'a', 'e', 'r', 'd', '&', '&' }; dream { 'm', 'a', 'e', 'r', 'd', '&', '&' } 'm' 'a' 'e' 'r' 'd' '&' '&' char[] eraser = { 'r', 'e', 's', 'a', 'r', 'e', '&' }; eraser { 'r', 'e', 's', 'a', 'r', 'e', '&' } 'r' 'e' 's' 'a' 'r' 'e' '&' char[] erase = { 'e', 's', 'a', 'r', 'e', '&', '&' }; erase { 'e', 's', 'a', 'r', 'e', '&', '&' } 'e' 's' 'a' 'r' 'e' '&' '&' int iDreamer = 0; iDreamer 0 int iDream = 0; iDream 0 int iEraser = 0; iEraser 0 int iErase = 0; iErase 0 while (true) {
			if (index == 0) {
				System.out.println("YES");
				break;
			} else if (index < 5) {
				System.out.println("NO");
				break;
			}
			iDreamer = 0;
			iDream = 0;
			iEraser = 0;
			iErase = 0;
			int dex = 0;
			for (int i = index - 1; i >= index - 7 && i >= 0; i--) {
				if (dreamer[dex] == ary[i]) {
					iDreamer++;
				}
				if (dream[dex] == ary[i]) {
					iDream++;
				}
				if (eraser[dex] == ary[i]) {
					iEraser++;
				}
				if (erase[dex] == ary[i]) {
					iErase++;
				}
				dex++;
			}
			if (iDreamer != 7) {
				iDreamer = 0;
			}
			if (iDream != 5) {
				iDream = 0;
			}
			if (iEraser != 6) {
				iEraser = 0;
			}
			if (iErase != 5) {
				iErase = 0;
			}
			int m = Math.max(Math.max(iErase, iEraser), Math.max(iDreamer, iDream));
			if (m == 0) {
				System.out.println("NO");
				break;
			}
			index -= m;

		} true {
			if (index == 0) {
				System.out.println("YES");
				break;
			} else if (index < 5) {
				System.out.println("NO");
				break;
			}
			iDreamer = 0;
			iDream = 0;
			iEraser = 0;
			iErase = 0;
			int dex = 0;
			for (int i = index - 1; i >= index - 7 && i >= 0; i--) {
				if (dreamer[dex] == ary[i]) {
					iDreamer++;
				}
				if (dream[dex] == ary[i]) {
					iDream++;
				}
				if (eraser[dex] == ary[i]) {
					iEraser++;
				}
				if (erase[dex] == ary[i]) {
					iErase++;
				}
				dex++;
			}
			if (iDreamer != 7) {
				iDreamer = 0;
			}
			if (iDream != 5) {
				iDream = 0;
			}
			if (iEraser != 6) {
				iEraser = 0;
			}
			if (iErase != 5) {
				iErase = 0;
			}
			int m = Math.max(Math.max(iErase, iEraser), Math.max(iDreamer, iDream));
			if (m == 0) {
				System.out.println("NO");
				break;
			}
			index -= m;

		} if (index == 0) {
				System.out.println("YES");
				break;
			} else if (index < 5) {
				System.out.println("NO");
				break;
			} index == 0 index 0 {
				System.out.println("YES");
				break;
			} System.out.println("YES") System.out.println System.out System System.out "YES" break; if (index < 5) {
				System.out.println("NO");
				break;
			} index < 5 index 5 {
				System.out.println("NO");
				break;
			} System.out.println("NO") System.out.println System.out System System.out "NO" break; iDreamer = 0 iDreamer 0 iDream = 0 iDream 0 iEraser = 0 iEraser 0 iErase = 0 iErase 0 int dex = 0; dex 0 for (int i = index - 1; i >= index - 7 && i >= 0; i--) {
				if (dreamer[dex] == ary[i]) {
					iDreamer++;
				}
				if (dream[dex] == ary[i]) {
					iDream++;
				}
				if (eraser[dex] == ary[i]) {
					iEraser++;
				}
				if (erase[dex] == ary[i]) {
					iErase++;
				}
				dex++;
			} int i = index - 1; int i = index - 1; i index - 1 index 1 i >= index - 7 && i >= 0 i >= index - 7 i index - 7 index 7 i >= 0 i 0 i-- i-- i {
				if (dreamer[dex] == ary[i]) {
					iDreamer++;
				}
				if (dream[dex] == ary[i]) {
					iDream++;
				}
				if (eraser[dex] == ary[i]) {
					iEraser++;
				}
				if (erase[dex] == ary[i]) {
					iErase++;
				}
				dex++;
			} {
				if (dreamer[dex] == ary[i]) {
					iDreamer++;
				}
				if (dream[dex] == ary[i]) {
					iDream++;
				}
				if (eraser[dex] == ary[i]) {
					iEraser++;
				}
				if (erase[dex] == ary[i]) {
					iErase++;
				}
				dex++;
			} if (dreamer[dex] == ary[i]) {
					iDreamer++;
				} dreamer[dex] == ary[i] dreamer[dex] dreamer dex ary[i] ary i {
					iDreamer++;
				} iDreamer++ iDreamer if (dream[dex] == ary[i]) {
					iDream++;
				} dream[dex] == ary[i] dream[dex] dream dex ary[i] ary i {
					iDream++;
				} iDream++ iDream if (eraser[dex] == ary[i]) {
					iEraser++;
				} eraser[dex] == ary[i] eraser[dex] eraser dex ary[i] ary i {
					iEraser++;
				} iEraser++ iEraser if (erase[dex] == ary[i]) {
					iErase++;
				} erase[dex] == ary[i] erase[dex] erase dex ary[i] ary i {
					iErase++;
				} iErase++ iErase dex++ dex if (iDreamer != 7) {
				iDreamer = 0;
			} iDreamer != 7 iDreamer 7 {
				iDreamer = 0;
			} iDreamer = 0 iDreamer 0 if (iDream != 5) {
				iDream = 0;
			} iDream != 5 iDream 5 {
				iDream = 0;
			} iDream = 0 iDream 0 if (iEraser != 6) {
				iEraser = 0;
			} iEraser != 6 iEraser 6 {
				iEraser = 0;
			} iEraser = 0 iEraser 0 if (iErase != 5) {
				iErase = 0;
			} iErase != 5 iErase 5 {
				iErase = 0;
			} iErase = 0 iErase 0 int m = Math.max(Math.max(iErase, iEraser), Math.max(iDreamer, iDream)); m Math.max(Math.max(iErase, iEraser), Math.max(iDreamer, iDream)) Math.max Math Math.max(iErase, iEraser) Math.max Math iErase iEraser Math.max(iDreamer, iDream) Math.max Math iDreamer iDream if (m == 0) {
				System.out.println("NO");
				break;
			} m == 0 m 0 {
				System.out.println("NO");
				break;
			} System.out.println("NO") System.out.println System.out System System.out "NO" break; index -= m index m return; String[] args args public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String s = sc.next();
		char[] ary = new char[s.length()];
		for (int i = 0; i < s.length(); i++) {
			ary[i] = s.charAt(i);
		}

		int index = s.length();
		char[] dreamer = { 'r', 'e', 'm', 'a', 'e', 'r', 'd' };
		char[] dream = { 'm', 'a', 'e', 'r', 'd', '&', '&' };
		char[] eraser = { 'r', 'e', 's', 'a', 'r', 'e', '&' };
		char[] erase = { 'e', 's', 'a', 'r', 'e', '&', '&' };

		int iDreamer = 0;
		int iDream = 0;
		int iEraser = 0;
		int iErase = 0;

		while (true) {
			if (index == 0) {
				System.out.println("YES");
				break;
			} else if (index < 5) {
				System.out.println("NO");
				break;
			}
			iDreamer = 0;
			iDream = 0;
			iEraser = 0;
			iErase = 0;
			int dex = 0;
			for (int i = index - 1; i >= index - 7 && i >= 0; i--) {
				if (dreamer[dex] == ary[i]) {
					iDreamer++;
				}
				if (dream[dex] == ary[i]) {
					iDream++;
				}
				if (eraser[dex] == ary[i]) {
					iEraser++;
				}
				if (erase[dex] == ary[i]) {
					iErase++;
				}
				dex++;
			}
			if (iDreamer != 7) {
				iDreamer = 0;
			}
			if (iDream != 5) {
				iDream = 0;
			}
			if (iEraser != 6) {
				iEraser = 0;
			}
			if (iErase != 5) {
				iErase = 0;
			}
			int m = Math.max(Math.max(iErase, iEraser), Math.max(iDreamer, iDream));
			if (m == 0) {
				System.out.println("NO");
				break;
			}
			index -= m;

		}
		return;
	}
} public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String s = sc.next();
		char[] ary = new char[s.length()];
		for (int i = 0; i < s.length(); i++) {
			ary[i] = s.charAt(i);
		}

		int index = s.length();
		char[] dreamer = { 'r', 'e', 'm', 'a', 'e', 'r', 'd' };
		char[] dream = { 'm', 'a', 'e', 'r', 'd', '&', '&' };
		char[] eraser = { 'r', 'e', 's', 'a', 'r', 'e', '&' };
		char[] erase = { 'e', 's', 'a', 'r', 'e', '&', '&' };

		int iDreamer = 0;
		int iDream = 0;
		int iEraser = 0;
		int iErase = 0;

		while (true) {
			if (index == 0) {
				System.out.println("YES");
				break;
			} else if (index < 5) {
				System.out.println("NO");
				break;
			}
			iDreamer = 0;
			iDream = 0;
			iEraser = 0;
			iErase = 0;
			int dex = 0;
			for (int i = index - 1; i >= index - 7 && i >= 0; i--) {
				if (dreamer[dex] == ary[i]) {
					iDreamer++;
				}
				if (dream[dex] == ary[i]) {
					iDream++;
				}
				if (eraser[dex] == ary[i]) {
					iEraser++;
				}
				if (erase[dex] == ary[i]) {
					iErase++;
				}
				dex++;
			}
			if (iDreamer != 7) {
				iDreamer = 0;
			}
			if (iDream != 5) {
				iDream = 0;
			}
			if (iEraser != 6) {
				iEraser = 0;
			}
			if (iErase != 5) {
				iErase = 0;
			}
			int m = Math.max(Math.max(iErase, iEraser), Math.max(iDreamer, iDream));
			if (m == 0) {
				System.out.println("NO");
				break;
			}
			index -= m;

		}
		return;
	}
} Main
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String s = sc.next();
		char[] ary = new char[s.length()];
		for (int i = 0; i < s.length(); i++) {
			ary[i] = s.charAt(i);
		}

		int index = s.length();
		char[] dreamer = { 'r', 'e', 'm', 'a', 'e', 'r', 'd' };
		char[] dream = { 'm', 'a', 'e', 'r', 'd', '&', '&' };
		char[] eraser = { 'r', 'e', 's', 'a', 'r', 'e', '&' };
		char[] erase = { 'e', 's', 'a', 'r', 'e', '&', '&' };

		int iDreamer = 0;
		int iDream = 0;
		int iEraser = 0;
		int iErase = 0;

		while (true) {
			if (index == 0) {
				System.out.println("YES");
				break;
			} else if (index < 5) {
				System.out.println("NO");
				break;
			}
			iDreamer = 0;
			iDream = 0;
			iEraser = 0;
			iErase = 0;
			int dex = 0;
			for (int i = index - 1; i >= index - 7 && i >= 0; i--) {
				if (dreamer[dex] == ary[i]) {
					iDreamer++;
				}
				if (dream[dex] == ary[i]) {
					iDream++;
				}
				if (eraser[dex] == ary[i]) {
					iEraser++;
				}
				if (erase[dex] == ary[i]) {
					iErase++;
				}
				dex++;
			}
			if (iDreamer != 7) {
				iDreamer = 0;
			}
			if (iDream != 5) {
				iDream = 0;
			}
			if (iEraser != 6) {
				iEraser = 0;
			}
			if (iErase != 5) {
				iErase = 0;
			}
			int m = Math.max(Math.max(iErase, iEraser), Math.max(iDreamer, iDream));
			if (m == 0) {
				System.out.println("NO");
				break;
			}
			index -= m;

		}
		return;
	}
}