#include <bits/stdc++.h>
using namespace std;
int dp[1024][1024], back[1024][1024];
char s1[1024], s2[1024];
void track(int x, int y) {
  if (x + y == 0) return;
  if (back[x][y] == 3 || back[x][y] == 2) {
    track(x - 1, y - 1);
    if (back[x][y] != 3) printf("REPLACE %d %c\n", y, s2[y]);
  } else if (back[x][y] == 1) {
    track(x, y - 1);
    printf("INSERT %d %c\n", y, s2[y]);
  } else {
    track(x - 1, y);
    printf("DELETE %d\n", y + 1);
  }
}
int main() {
  int l1, l2, i, j;
  gets(s1 + 1);
  gets(s2 + 1);
  l1 = strlen(s1 + 1);
  l2 = strlen(s2 + 1);
  for (i = 1; i <= l1; i++) {
    dp[i][0] = i;
    back[i][0] = 0;
  }
  for (i = 1; i <= l2; i++) {
    dp[0][i] = i;
    back[0][i] = 1;
  }
  for (i = 1; i <= l1; i++) {
    for (j = 1; j <= l2; j++) {
      if (s1[i] == s2[j]) {
        dp[i][j] = dp[i - 1][j - 1];
        back[i][j] = 3;
      } else {
        dp[i][j] = dp[i - 1][j - 1] + 1;
        back[i][j] = 2;
      }
      if (dp[i - 1][j] + 1 < dp[i][j]) {
        dp[i][j] = dp[i - 1][j] + 1;
        back[i][j] = 0;
      }
      if (dp[i][j - 1] + 1 < dp[i][j]) {
        dp[i][j] = dp[i][j - 1] + 1;
        back[i][j] = 1;
      }
    }
  }
  printf("%d\n", dp[l1][l2]);
  track(l1, l2);
}
