There is a string *s*, consisting of capital Latin letters. Let's denote its current length as |*s*|. During one move it is allowed to apply one of the following operations to it: 
 -  INSERT *pos* *ch* — insert a letter *ch* in the string *s* in the position *pos* (1 ≤ *pos* ≤ |*s*| + 1, *A* ≤ *ch* ≤ *Z*). The letter *ch* becomes the *pos*-th symbol of the string *s*, at that the letters shift aside and the length of the string increases by 1. -  DELETE *pos* — delete a character number *pos* (1 ≤ *pos* ≤ |*s*|) from the string *s*. At that the letters shift together and the length of the string decreases by 1. -  REPLACE *pos* *ch* — the letter in the position *pos* of the line *s* is replaced by *ch* (1 ≤ *pos* ≤ |*s*|, *A* ≤ *ch* ≤ *Z*). At that the length of the string does not change. 
Your task is to find in which minimal number of moves one can get a *t* string from an *s* string. You should also find the sequence of actions leading to the required results.
The first line contains *s*, the second line contains *t*. The lines consist only of capital Latin letters, their lengths are positive numbers from 1 to 1000.
s = input()
t = input()

n, m = len(s), len(t)
dp = [[0 for _ in range(m + 1)] for _ in range(n + 1)]

# fill the base cases
for i in range(n+1):
    dp[i][m] = n - i

for j in range(m+1):
    dp[n][j] = m - j

for i in range(n-1, -1, -1):
    for j in range(m-1, -1, -1):
        if s[i] == t[j]:
            dp[i][j] = dp[i+1][j+1]
        else:
            dp[i][j] = min(dp[i+1][j], dp[i+1][j+1], dp[i][j+1]) + 1

print(dp[0][0])

# now trace the whole thing
i, j = 0, 0
insert_offset = 0
while i < n and j < m:
    if s[i] == t[j]:
        i += 1
        j += 1
    elif dp[i][j] == dp[i+1][j] + 1:
        print("DELETE {}".format(i + 1 + insert_offset))
        i += 1
    elif dp[i][j] == dp[i+1][j+1] + 1:
        print("REPLACE {} {}".format(i+1+insert_offset, t[j]))
        i += 1
        j += 1
    else:
        print("INSERT {} {}".format(i + 1 + insert_offset, t[j]))
        j += 1
        insert_offset += 1

while i < n:    
    print(print("DELETE {}".format(i + 1 + insert_offset)))
    i += 1

while j < m:
    print("INSERT {} {}".format(i+1 + insert_offset, t[j]))
    j += 1
    insert_offset += 1



    