#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cstring>

const int maxn = 1e5 + 20;

char s[maxn];
int n;
bool flag[maxn];
char ch[4][10] = {"dream", "dreamer", "erase", "eraser"};
int len[4] = {5, 7, 5, 6};

bool check(char *s1, char *s2, int l)
{
	for(int i = 0; i < l; i++)
	{
		if(s1[i] != s2[i]) return false;
	}
	
	return true;
}
int main()
{
	scanf("%s", s + 1);
	n = strlen(s + 1);
	
	flag[0] = true;
	for(int i = 1; i <= n; i++)
	{
		for(int j = 0; j < 4; j++)
		{
			if(i - len[j] >= 0 && flag[i - len[j]] && check(s + (i - len[j] + 1), ch[j], len[j]))
			{
				flag[i] = true;
				break;
			}
		}
	}
	
	puts(flag[n] ? "YES" : "NO");
	
	return 0;
}