#include <bits/stdc++.h>
using namespace std;
const int N = 1e2 + 5, M = 1e5 + 5, oo = 0x3f3f3f3f, mod = 1e9 + 7;
string s, s2;
int n, m, mem[1100][1100], sft = 1;
int solve(int i, int j) {
  if (i == n) return m - j;
  if (j == m) return n - i;
  if (mem[i][j] != -1) return mem[i][j];
  if (s[i] == s2[j]) return mem[i][j] = solve(i + 1, j + 1);
  int op1 = 1 + solve(i + 1, j);
  int op2 = 1 + solve(i + 1, j + 1);
  int op3 = 1 + solve(i, j + 1);
  return mem[i][j] = min(op1, min(op2, op3));
}
void print(int i, int j) {
  if (i == n) {
    for (int k = j; k < m; k++) {
      cout << "INSERT " << i + sft << " " << s2[k] << endl;
      sft++;
    }
    return;
  }
  if (j == m) {
    for (int k = i; k < n; k++) {
      cout << "DELETE " << k + sft << endl;
      sft--;
    }
    return;
  }
  if (s[i] == s2[j]) {
    print(i + 1, j + 1);
    return;
  }
  int op1 = 1 + solve(i + 1, j);
  int op2 = 1 + solve(i + 1, j + 1);
  int op3 = 1 + solve(i, j + 1);
  if (solve(i, j) == op1) {
    cout << "DELETE " << i + sft << endl;
    sft--;
    print(i + 1, j);
  } else if (solve(i, j) == op2) {
    cout << "REPLACE " << i + sft << " " << s2[j] << endl;
    print(i + 1, j + 1);
  } else {
    cout << "INSERT " << i + sft << " " << s2[j] << endl;
    sft++;
    print(i, j + 1);
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  memset(mem, -1, sizeof mem);
  cin >> s >> s2;
  n = s.size();
  m = s2.size();
  cout << solve(0, 0) << endl;
  print(0, 0);
  return 0;
}
