#include <bits/stdc++.h>
using namespace std;
const int mxn = 1010;
string s, t;
int dp[mxn][mxn], p[mxn][mxn];
void pp(int ii, int jj) {
  if (ii <= 0 && jj <= 0) {
    return;
  }
  if (p[ii][jj] == 0) pp(ii - 1, jj - 1);
  if (p[ii][jj] == 1) {
    cout << "REPLACE " << ii << " " << t[jj - 1] << endl;
    pp(ii - 1, jj - 1);
  }
  if (p[ii][jj] == 2) {
    cout << "DELETE " << ii << endl;
    pp(ii - 1, jj);
  }
  if (p[ii][jj] == 3) {
    cout << "INSERT " << ii + 1 << " " << t[jj - 1] << endl;
    pp(ii, jj - 1);
  }
}
int main() {
  cin >> s >> t;
  int n1 = (int)s.size(), n2 = (int)t.size();
  for (int i = 0; i <= n1; i++) {
    dp[i][0] = i;
    p[i][0] = 2;
  }
  for (int i = 0; i <= n2; i++) {
    dp[0][i] = i;
    p[0][i] = 3;
  }
  for (int i = 1; i <= n1; i++) {
    for (int j = 1; j <= n2; j++) {
      if (s[i - 1] == t[j - 1]) {
        dp[i][j] = dp[i - 1][j - 1];
      } else {
        int m =
            min(dp[i - 1][j - 1] + 1, min(dp[i - 1][j] + 1, dp[i][j - 1] + 1));
        dp[i][j] = m;
        if (m == dp[i - 1][j - 1] + 1) p[i][j] = 1;
        if (m == dp[i - 1][j] + 1) p[i][j] = 2;
        if (m == dp[i][j - 1] + 1) p[i][j] = 3;
      }
    }
  }
  cout << dp[n1][n2] << endl;
  pp(n1, n2);
  return 0;
}
