#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;
}
for(int j = 0; j < m+1; j++)
{
edit[0][j] = j;
}
for(int i = 1; i < n+1; i++)
{
for(int j = 1; j < m+1; j++)
{
if(s1[j-1] == s2[i-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--;
j--;
}
else
{
if(edit[i][j] == 1 + edit[i-1][j-1])
{
cout<<s1[j-1]<<" is replaced by "<<s2[i-1]<<endl;
i--;
j--;
}
else if( edit[i][j] == 1 + edit[i][j-1])
{
cout<<s1[j-1]<<" is deleted"<<endl;
j--;
}
else
{
cout<<s2[i-1]<<" is inserted"<<endl;
i--;
}
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewogICAgc3RyaW5nIHMxLCBzMjsKICAgIGdldGxpbmUoY2luLCBzMSk7CiAgICBnZXRsaW5lKGNpbiwgczIpOwoKICAgIGludCBtID0gczEuc2l6ZSgpOwogICAgaW50IG4gPSBzMi5zaXplKCk7CgogICAgaW50IGVkaXRbbisxXVttKzFdOwoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuKzE7IGkrKykKICAgIHsKICAgICAgICBlZGl0W2ldWzBdID0gaTsKICAgIH0KICAgIGZvcihpbnQgaiA9IDA7IGogPCBtKzE7IGorKykKICAgIHsKICAgICAgICBlZGl0WzBdW2pdID0gajsKICAgIH0KCiAgICBmb3IoaW50IGkgPSAxOyBpIDwgbisxOyBpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBqID0gMTsgaiA8IG0rMTsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoczFbai0xXSA9PSBzMltpLTFdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBlZGl0W2ldW2pdID0gZWRpdFtpLTFdW2otMV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBlZGl0W2ldW2pdID0gMSArIG1pbih7ZWRpdFtpLTFdW2pdLCBlZGl0W2ldW2otMV0sIGVkaXRbaS0xXVtqLTFdfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZm9yKGludCBpID0gMDsgaSA8IG4rMTsgaSsrKQogICAgewogICAgICAgIGZvcihpbnQgaiA9IDA7IGogPCBtKzE7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQ8PGVkaXRbaV1bal08PCIgIjsKICAgICAgICB9CiAgICAgICAgY291dDw8ZW5kbDsKICAgIH0KCgogICAgaW50IGkgPSBuLCBqID0gbTsKICAgIHdoaWxlKCBpID4gMCkKICAgIHsKICAgICAgICBpZihzMltpLTFdID09IHMxW2otMV0pCiAgICAgICAgewogICAgICAgICAgICBpLS07CiAgICAgICAgICAgIGotLTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgaWYoZWRpdFtpXVtqXSA9PSAxICsgZWRpdFtpLTFdW2otMV0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQ8PHMxW2otMV08PCIgaXMgcmVwbGFjZWQgYnkgIjw8czJbaS0xXTw8ZW5kbDsKICAgICAgICAgICAgICAgIGktLTsKICAgICAgICAgICAgICAgIGotLTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCBlZGl0W2ldW2pdID09ICAxICsgZWRpdFtpXVtqLTFdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb3V0PDxzMVtqLTFdPDwiIGlzIGRlbGV0ZWQiPDxlbmRsOwogICAgICAgICAgICAgICAgai0tOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY291dDw8czJbaS0xXTw8IiBpcyBpbnNlcnRlZCI8PGVuZGw7CiAgICAgICAgICAgICAgICBpLS07CiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgfQoKCgoKCgoKfQo=