#include<bits/stdc++.h>
using namespace std;
int main()
{
string s1, s2;
getline(cin, s1);
getline(cin, s2);
int m = s1.size();
int n = s2.size();
int edit[n+1][m+1];
for(int i = 0; i < n+1; i++)
{
edit[i][0] = i; //insert
}
for(int j = 0; j < m+1; j++)
{
edit[0][j] = j; // delete
}
for(int i = 1; i < n+1; i++)
{
for(int j = 1; j < m+1; j++)
{
if(s2[i-1] == s1[j-1])
{
edit[i][j] = edit[i-1][j-1];
}
else
{
edit[i][j]= 1 + min({edit[i-1][j], edit[i][j-1], edit[i-1][j-1]});
}
}
}
for(int i = 0; i < n+1; i++)
{
for(int j = 0; j < m+1; j++)
{
cout<<edit[i][j]<<" ";
}
cout<<endl;
}
int i = n, j = m;
while(i > 0)
{
if(s2[i-1] == s1[j-1])
{
i = i-1;
j = j-1;
}
else
{
if(edit[i][j] == 1+ edit[i-1][j-1])
{
cout<<s1[j-1]<<" is replaced by "<<s2[i-1]<<endl;
i = i-1;
j = j-1;
}
else if(edit[i][j] == 1 + edit[i-1][j])
{
cout<<s2[i-1]<<" is inserted"<<endl;
i = i-1;
}
else
{
cout<<s1[j-1]<<" is deleted"<<endl;
j = j - 1;
}
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewogICAgc3RyaW5nIHMxLCBzMjsKICAgIGdldGxpbmUoY2luLCBzMSk7CiAgICBnZXRsaW5lKGNpbiwgczIpOwoKICAgIGludCBtID0gczEuc2l6ZSgpOwogICAgaW50IG4gPSBzMi5zaXplKCk7CgogICAgaW50IGVkaXRbbisxXVttKzFdOwoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuKzE7IGkrKykKICAgIHsKICAgICAgICBlZGl0W2ldWzBdID0gaTsgLy9pbnNlcnQKICAgIH0KICAgIGZvcihpbnQgaiA9IDA7IGogPCBtKzE7IGorKykKICAgIHsKICAgICAgICBlZGl0WzBdW2pdID0gajsgLy8gZGVsZXRlCiAgICB9CgogICAgZm9yKGludCBpID0gMTsgaSA8IG4rMTsgaSsrKQogICAgewogICAgICAgIGZvcihpbnQgaiA9IDE7IGogPCBtKzE7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKHMyW2ktMV0gPT0gczFbai0xXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZWRpdFtpXVtqXSA9IGVkaXRbaS0xXVtqLTFdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZWRpdFtpXVtqXT0gMSArIG1pbih7ZWRpdFtpLTFdW2pdLCBlZGl0W2ldW2otMV0sIGVkaXRbaS0xXVtqLTFdfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZm9yKGludCBpID0gMDsgaSA8IG4rMTsgaSsrKQogICAgewogICAgICAgIGZvcihpbnQgaiA9IDA7IGogPCBtKzE7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQ8PGVkaXRbaV1bal08PCIgIjsKICAgICAgICB9CiAgICAgICAgY291dDw8ZW5kbDsKICAgIH0KCgoKICAgIGludCBpID0gbiwgaiA9IG07CiAgICB3aGlsZShpID4gMCkKICAgIHsKICAgICAgICBpZihzMltpLTFdID09IHMxW2otMV0pCiAgICAgICAgewogICAgICAgICAgICBpID0gaS0xOwogICAgICAgICAgICBqID0gai0xOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBpZihlZGl0W2ldW2pdID09ICAxKyBlZGl0W2ktMV1bai0xXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY291dDw8czFbai0xXTw8IiBpcyByZXBsYWNlZCBieSAiPDxzMltpLTFdPDxlbmRsOwogICAgICAgICAgICAgICAgaSA9IGktMTsKICAgICAgICAgICAgICAgIGogPSBqLTE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZihlZGl0W2ldW2pdID09IDEgKyBlZGl0W2ktMV1bal0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQ8PHMyW2ktMV08PCIgaXMgaW5zZXJ0ZWQiPDxlbmRsOwogICAgICAgICAgICAgICAgaSA9IGktMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQ8PHMxW2otMV08PCIgaXMgZGVsZXRlZCI8PGVuZGw7CiAgICAgICAgICAgICAgICBqID0gaiAtIDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgoKCn0K