#include <bits/stdc++.h>
using namespace std;
string a, b;
int dp[1111][1111];
char from[1111][1111];
int main() {
  cin >> a >> b;
  a = " " + a;
  b = " " + b;
  for (int i = 0; i < a.size(); i++) {
    dp[0][i] = i;
    from[0][i] = 3;
  }
  for (int i = 0; i < b.size(); i++) {
    dp[i][0] = i;
    from[i][0] = 2;
  }
  for (int i = 1; i < b.size(); i++) {
    for (int u = 1; u < a.size(); u++) {
      if (b[i] == a[u]) {
        dp[i][u] = dp[i - 1][u - 1];
        from[i][u] = 0;
      } else {
        dp[i][u] = dp[i - 1][u - 1] + 1;
        from[i][u] = 1;
      }
      if (dp[i - 1][u] + 1 < dp[i][u]) {
        dp[i][u] = dp[i - 1][u] + 1;
        from[i][u] = 2;
      }
      if (dp[i][u - 1] + 1 < dp[i][u]) {
        dp[i][u] = dp[i][u - 1] + 1;
        from[i][u] = 3;
      }
    }
  }
  cout << dp[b.size() - 1][a.size() - 1] << endl;
  vector<string> way;
  int curi = b.size() - 1;
  int curu = a.size() - 1;
  for (;;) {
    if (curi == 0 && curu == 0) break;
    if (from[curi][curu] == 1) {
      ostringstream ssout;
      ssout << "REPLACE ";
      ssout << curu << ' ';
      ssout << b[curi];
      string str = ssout.str();
      way.push_back(str);
      --curi;
      --curu;
    } else if (from[curi][curu] == 2) {
      ostringstream ssout;
      ssout << "INSERT ";
      ssout << curu + 1 << ' ';
      ssout << b[curi];
      string str = ssout.str();
      way.push_back(str);
      --curi;
    } else if (from[curi][curu] == 3) {
      ostringstream ssout;
      ssout << "DELETE ";
      ssout << curu;
      string str = ssout.str();
      way.push_back(str);
      --curu;
    } else {
      --curi;
      --curu;
    }
  }
  for (int i = 0; i < way.size(); i++) cout << way[i] << endl;
  return 0;
}
