#include <bits/stdc++.h>
using namespace std;
int dp[1600][1600];
string t, s;
int min(int a, int b, int c) { return min(min(b, c), a); }
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  ;
  cin >> s >> t;
  s = " " + s;
  t = " " + t;
  for (int i = 0; i <= s.length() - 1; i++) {
    for (int j = 0; j <= t.length() - 1; j++) {
      if (i == 0 || j == 0) {
        dp[i][j] = max(i, j);
      } else {
        if (s[i] == t[j]) {
          dp[i][j] = min(dp[i - 1][j - 1], dp[i][j - 1] + 1, dp[i - 1][j] + 1);
        } else {
          dp[i][j] =
              min(dp[i][j - 1] + 1, dp[i - 1][j] + 1, dp[i - 1][j - 1] + 1);
        }
      }
    }
  }
  cout << dp[s.length() - 1][t.length() - 1] << endl;
  int l1 = s.length() - 1;
  int l2 = t.length() - 1;
  while (l1 > 0 || l2 > 0) {
    if (dp[l1][l2] == dp[l1 - 1][l2] + 1 && l1 != 0) {
      cout << "DELETE " << l1 << endl;
      l1--;
    } else if (dp[l1][l2] == dp[l1][l2 - 1] + 1 && l2 != 0) {
      cout << "INSERT " << l1 + 1 << " " << t[l2] << endl;
      l2--;
    } else if (dp[l1][l2] == dp[l1 - 1][l2 - 1] + 1) {
      cout << "REPLACE " << l1 << " " << t[l2] << endl;
      l1--;
      l2--;
    } else if (dp[l1][l2] == dp[l1 - 1][l2 - 1]) {
      l1--;
      l2--;
    }
  }
}
