#include <bits/stdc++.h>
using namespace std;
const int MAX = 1010;
const int INF = 1000000001;
char A[MAX];
char B[MAX];
int dp[MAX][MAX];
int n, m;
void print(int k, int l) {
  if (!k && !l) return;
  if (k && l && dp[k][l] == dp[k - 1][l - 1] + (A[k] != B[l])) {
    print(k - 1, l - 1);
    if (A[k] != B[l]) printf("REPLACE %d %c\n", l, B[l]);
    return;
  }
  if (k && dp[k][l] == dp[k - 1][l] + 1) {
    printf("DELETE %d\n", k);
    print(k - 1, l);
    return;
  }
  print(k, l - 1);
  printf("INSERT %d %c\n", l, B[l]);
}
int main(int argc, char *argv[]) {
  scanf("%s %s", A + 1, B + 1);
  n = strlen(A + 1);
  m = strlen(B + 1);
  for (int i = 1; i <= max(n, m); ++i) dp[0][i] = dp[i][0] = i;
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= m; ++j)
      dp[i][j] = min(dp[i][j - 1] + 1,
                     min(dp[i - 1][j] + 1, dp[i - 1][j - 1] + (A[i] != B[j])));
  printf("%d\n", dp[n][m]);
  print(n, m);
  return 0;
}
