#include <bits/stdc++.h>
using namespace std;
const int MAX = 1003;
int dp[MAX][MAX][2] = {0};
int n, m;
char s[MAX], t[MAX];
int shift = 0;
void print() {
  for (int i = 0; i <= n; i++) {
    for (int j = 0; j <= m; j++) {
      printf("%d ", dp[i][j][0]);
    }
    printf("\n");
  }
  printf("\n");
}
void moves(int i, int j) {
  if (i == 0 && j == 0) return;
  if (dp[i][j][1] == 1) {
    moves(i, j - 1);
    printf("INSERT %d %c\n", i + shift + 1, t[j - 1]);
    shift++;
  } else if (dp[i][j][1] == -1) {
    moves(i - 1, j);
    printf("DELETE %d\n", i + shift);
    shift--;
  } else {
    moves(i - 1, j - 1);
    if (dp[i][j][0] == dp[i - 1][j - 1][0] + 1)
      printf("REPLACE %d %c\n", i + shift, t[j - 1]);
  }
}
int main() {
  scanf("%s%s", s, t);
  for (n = 0; s[n] != '\0'; n++)
    ;
  for (m = 0; t[m] != '\0'; m++)
    ;
  for (int i = 0; i <= n; i++) dp[i][0][0] = i, dp[i][0][1] = -1;
  for (int j = 0; j <= m; j++) dp[0][j][0] = j, dp[0][j][1] = 1;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      dp[i][j][1] = 0;
      if (s[i - 1] == t[j - 1])
        dp[i][j][0] = dp[i - 1][j - 1][0];
      else
        dp[i][j][0] = dp[i - 1][j - 1][0] + 1;
      if (dp[i - 1][j][0] + 1 < dp[i][j][0]) {
        dp[i][j][0] = dp[i - 1][j][0] + 1;
        dp[i][j][1] = -1;
      }
      if (dp[i][j - 1][0] + 1 < dp[i][j][0]) {
        dp[i][j][0] = dp[i][j - 1][0] + 1;
        dp[i][j][1] = 1;
      }
    }
  }
  printf("%d\n", dp[n][m][0]);
  moves(n, m);
  return 0;
}
