#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
int main() {
  ios_base::sync_with_stdio(0);
  string s, t;
  cin >> s >> t;
  int n = s.size(), m = t.size();
  vector<vector<int> > f(n + 1);
  vector<vector<int> > what(n + 1);
  vector<vector<pair<int, int> > > from(n + 1);
  for (int i = 0; i < int((f).size()); i++)
    f[i].resize(m + 1), what[i].resize(m + 1), from[i].resize(m + 1);
  for (int i = 0; i <= n; ++i)
    for (int j = 0; j <= m; ++j) {
      if (i == 0 && j == 0) continue;
      int a, b, c, d;
      a = b = c = d = 1000000000;
      if (i - 1 >= 0 && j - 1 >= 0 && s[i - 1] == t[j - 1]) a = f[i - 1][j - 1];
      if (i - 1 >= 0) b = f[i - 1][j] + 1;
      if (j - 1 >= 0) c = f[i][j - 1] + 1;
      if (i - 1 >= 0 && j - 1 >= 0) d = f[i - 1][j - 1] + 1;
      int mn = min(min(a, b), min(c, d));
      if (mn == b)
        what[i][j] = 1, from[i][j] = make_pair(i - 1, j);
      else if (mn == c)
        what[i][j] = 2, from[i][j] = make_pair(i, j - 1);
      else if (mn == d)
        what[i][j] = 3, from[i][j] = make_pair(i - 1, j - 1);
      else
        from[i][j] = make_pair(i - 1, j - 1);
      f[i][j] = mn;
    }
  cout << f[n][m] << endl;
  int i = n, j = m;
  while (i != 0 || j != 0) {
    if (what[i][j] == 1)
      cout << "DELETE " << i << endl;
    else if (what[i][j] == 2)
      cout << "INSERT " << i + 1 << ' ' << t[j - 1] << endl;
    else if (what[i][j] == 3)
      cout << "REPLACE " << i << ' ' << t[j - 1] << endl;
    pair<int, int> h = from[i][j];
    i = h.first;
    j = h.second;
  }
  return 0;
}
