#include <bits/stdc++.h>
using namespace std;
int dp[1005][1005];
int operation[1005][1005];
int deleted;
string s, t;
void print_ans(int i, int j) {
  if (operation[i][j] == -1) return;
  if (operation[i][j] == 3) {
    print_ans(i - 1, j - 1);
    cout << "REPLACE " << i - deleted << ' ' << t[j - 1] << '\n';
  } else if (operation[i][j] == 1) {
    print_ans(i - 1, j);
    cout << "DELETE " << i - deleted << '\n';
    ++deleted;
  } else if (operation[i][j] == 0) {
    print_ans(i, j - 1);
    cout << "INSERT " << i - deleted + 1 << ' ' << t[j - 1] << '\n';
    --deleted;
  } else
    print_ans(i - 1, j - 1);
}
int main() {
  cin.tie(0);
  ios_base::sync_with_stdio(0);
  cin >> s >> t;
  int n = s.size(), m = t.size();
  for (int i = 0; i <= n; ++i) {
    dp[i][0] = i;
    operation[i][0] = 1;
  }
  for (int j = 0; j <= m; ++j) {
    dp[0][j] = j;
    operation[0][j] = 0;
  }
  int x, y, z, d;
  operation[0][0] = -1;
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= m; ++j) {
      d = s[i - 1] != t[j - 1];
      x = dp[i - 1][j] + 1, y = dp[i][j - 1] + 1, z = dp[i - 1][j - 1] + d;
      dp[i][j] = min((x), min((y), (z)));
      if (x == dp[i][j])
        operation[i][j] = 1;
      else if (y == dp[i][j])
        operation[i][j] = 0;
      else {
        if (d)
          operation[i][j] = 3;
        else
          operation[i][j] = 2;
      }
    }
  deleted = 0;
  cout << dp[n][m] << '\n';
  print_ans(n, m);
}
