Buggy python submission (verdict: Time Limit Exceeded):
S = input()
S = S[::-1]

words = ['dreamer', 'eraser', 'dream', 'erase']
for i in range(4):
    K = words[i]
    words[i] = K[::-1]

T = ''
T_next = ''

while len(T) < len(S):
    if len(T) + 5 > len(S):
        break
    for i in range(4):
        S_next = S[len(T):len(T + words[i])]
        T_next = words[i]
        #print(S_next)
        #print(T_next)
        #print()
        if S_next == T_next:
            T += T_next
            if T == S:
                print('YES')
                exit()
            break

print('NO')



Fixed submission:
S = input()
S = S[::-1]

words = ['dreamer', 'eraser', 'dream', 'erase']
for i in range(4):
    K = words[i]
    words[i] = K[::-1]

T = ''
T_next = ''

while True:
    if len(T) + 5 > len(S):
        break
    for i in range(4):
        S_next = S[len(T):len(T + words[i])]
        T_next = words[i]
        flag = False
        #print(S_next)
        #print(T_next)
        #print()
        if S_next == T_next:
            flag = True
            T += T_next
            #print(T)
            #print()
            #input()
            if T == S:
                print('YES')
                exit()
            break
    if flag == False:
        break
    #input()

print('NO')

Buggy python submission (verdict: Time Limit Exceeded):
S = input()

words = ['dreamer', 'eraser', 'dream', 'erase']

T = ''
T_next = ''

while len(T) < len(S):
    if len(T) + 5 > len(S):
        break
    for i in range(4):
        S_next = S[len(T):len(T + words[i])]
        T_next = words[i]
        #print(S_next)
        #print(T_next)
        #print()
        if (words[i] in words[0:1]) and (len(T + T_next) < len(S) and S[len(T + T_next)] == 'a'):
            pass
        elif S_next == T_next:
            T += T_next
            if T == S:
                print('YES')
                exit()
            break

print('NO')



Fixed submission:
S = input()
S = S[::-1]

words = ['dreamer', 'eraser', 'dream', 'erase']
for i in range(4):
    K = words[i]
    words[i] = K[::-1]

T = ''
T_next = ''

while True:
    if len(T) + 5 > len(S):
        break
    for i in range(4):
        S_next = S[len(T):len(T + words[i])]
        T_next = words[i]
        flag = False
        #print(S_next)
        #print(T_next)
        #print()
        if S_next == T_next:
            flag = True
            T += T_next
            #print(T)
            #print()
            #input()
            if T == S:
                print('YES')
                exit()
            break
    if flag == False:
        break
    #input()

print('NO')

Buggy python submission (verdict: Time Limit Exceeded):
S = input()

words = ['dreamer', 'eraser', 'dream', 'erase']

T = ''
T_next = ''

while len(T) < len(S):
    if len(T) + 5 > len(S):
        break
    for i in range(4):
        S_head = S[:len(T + words[i])]
        T_next = T + words[i]
        #print(S_head)
        #print(T_next)
        #print()
        if T_next == S:
            print('YES')
            exit()
        elif (words[i] in words[0:1]) and (len(T_next) < len(S) and S[len(T_next)] == 'a'):
            pass
        elif S_head == T_next:
            T = T_next
            break

print('NO')

Fixed submission:
S = input()
S = S[::-1]

words = ['dreamer', 'eraser', 'dream', 'erase']
for i in range(4):
    K = words[i]
    words[i] = K[::-1]

T = ''
T_next = ''

while True:
    if len(T) + 5 > len(S):
        break
    for i in range(4):
        S_next = S[len(T):len(T + words[i])]
        T_next = words[i]
        flag = False
        #print(S_next)
        #print(T_next)
        #print()
        if S_next == T_next:
            flag = True
            T += T_next
            #print(T)
            #print()
            #input()
            if T == S:
                print('YES')
                exit()
            break
    if flag == False:
        break
    #input()

print('NO')