#include <bits/stdc++.h>
using namespace std;
int dp[1010][1010];
string s1, s2;
int n1, n2;
vector<int> pos;
vector<string> action;
vector<char> ch;
void make() {
  int i, j, k;
  n1 = s1.length();
  n2 = s2.length();
  for (i = 0; i <= n1; i++) dp[i][0] = i;
  for (i = 0; i <= n2; i++) dp[0][i] = i;
  dp[0][0] = 0;
  s1 = "x" + s1;
  s2 = "x" + s2;
  for (i = 1; i <= n1; i++) {
    for (j = 1; j <= n2; j++) {
      dp[i][j] = ((dp[i - 1][j] + 1) < (dp[i][j - 1] + 1) ? (dp[i - 1][j] + 1)
                                                          : (dp[i][j - 1] + 1));
      dp[i][j] = ((dp[i][j]) < (dp[i - 1][j - 1] + ((s1[i] == s2[j]) ? 0 : 1))
                      ? (dp[i][j])
                      : (dp[i - 1][j - 1] + ((s1[i] == s2[j]) ? 0 : 1)));
    }
  }
  i = n1;
  j = n2;
  pos.clear();
  action.clear();
  ch.clear();
  while (dp[i][j]) {
    if (i >= 1 && j >= 1) {
      if ((dp[i - 1][j] + 1) == dp[i][j]) {
        pos.push_back(j + 1);
        action.push_back("DELETE");
        ch.push_back(s1[i]);
        i--;
        continue;
      }
      if ((dp[i][j - 1] + 1) == dp[i][j]) {
        pos.push_back(j);
        action.push_back("INSERT");
        ch.push_back(s2[j]);
        j--;
        continue;
      } else {
        if (s1[i] != s2[j]) {
          pos.push_back(j);
          action.push_back("REPLACE");
          ch.push_back(s2[j]);
        }
        i--;
        j--;
        continue;
      }
    } else if (i >= 1) {
      if ((dp[i - 1][j] + 1) == dp[i][j]) {
        pos.push_back(j + 1);
        action.push_back("DELETE");
        ch.push_back(s1[i]);
        i--;
        continue;
      }
    } else {
      if ((dp[i][j - 1] + 1) == dp[i][j]) {
        pos.push_back(j);
        action.push_back("INSERT");
        ch.push_back(s2[j]);
        j--;
        continue;
      }
    }
  }
}
int main() {
  int i;
  while (cin >> s1 >> s2) {
    make();
    printf("%d\n", dp[n1][n2]);
    reverse(pos.begin(), pos.end());
    reverse(ch.begin(), ch.end());
    reverse(action.begin(), action.end());
    int add = 0;
    for (i = 1; i <= dp[n1][n2]; i++) {
      if (action[i - 1] == "DELETE") {
        cout << action[i - 1] << " " << (pos[i - 1]) << endl;
      } else
        cout << action[i - 1] << " " << (pos[i - 1]) << " " << ch[i - 1]
             << endl;
    }
  }
  return 0;
}
