#include <bits/stdc++.h>
using namespace std;
string st1, st2;
long dp[1050][1050];
long par[1050][1050];
long n, m;
vector<pair<long, long> > ans;
int main() {
  ios_base::sync_with_stdio(0);
  cin >> st1 >> st2;
  for (int i = 0; i <= st1.size(); i++)
    for (int j = 0; j <= st2.size(); j++) {
      dp[i][j] = 1e9;
    }
  n = st1.size();
  m = st2.size();
  dp[0][0] = 0;
  for (int j = 0; j <= st2.size(); j++) {
    for (int i = 0; i <= st1.size(); i++) {
      if (j > 0 && dp[i][j - 1] + 1 < dp[i][j]) {
        dp[i][j] = dp[i][j - 1] + 1;
        par[i][j] = 1;
      }
      if (i > 0 && dp[i - 1][j] + 1 < dp[i][j]) {
        dp[i][j] = dp[i - 1][j] + 1;
        par[i][j] = 2;
      }
      if (i > 0 && j > 0) {
        long tc = (st1[i - 1] != st2[j - 1]);
        if (dp[i][j] > dp[i - 1][j - 1] + tc) {
          dp[i][j] = dp[i - 1][j - 1] + tc;
          par[i][j] = 3;
        }
      }
    }
  }
  cout << dp[n][m] << endl;
  while (n > 0 || m > 0) {
    if (par[n][m] == 1) {
      ans.push_back(make_pair(1, m));
      --m;
    }
    if (par[n][m] == 2) {
      ans.push_back(make_pair(2, m));
      --n;
    }
    if (par[n][m] == 3) {
      if (st1[n - 1] != st2[m - 1]) {
        ans.push_back(make_pair(3, m));
      }
      --n;
      --m;
    }
  }
  reverse(ans.begin(), ans.end());
  for (int i = 0; i < ans.size(); i++) {
    if (ans[i].first == 3) {
      cout << "REPLACE " << ans[i].second << " " << st2[ans[i].second - 1]
           << endl;
    }
    if (ans[i].first == 2) {
      cout << "DELETE " << ans[i].second + 1 << endl;
    }
    if (ans[i].first == 1) {
      cout << "INSERT " << ans[i].second << " " << st2[ans[i].second - 1]
           << endl;
    }
  }
  cin.get();
  cin.get();
  return 0;
}
