fun main(args: Array<String>) {
    var S = readLine() // 入力を読み込む
    while(S!!.isNotEmpty()) {
        // 末端の文字列を比較する
        val suffixList = listOf("dreamer", "eraser", "dream", "erase")
        var foundSuffix = ""
        for (suffix in suffixList) {
            if (S.endsWith(suffix)) {
                foundSuffix = suffix
                break
            }
        }
        if (foundSuffix.isNotEmpty()) {
            S = S.removeSuffix(foundSuffix)
        } else {
            // もしどれにも該当しない場合 NG
            return println("NO")
        }
    }
    // 最後までいったら OK
    return println("YES")
}