#include <iostream>
using namespace std;
int dp[1001][1001];
/**
* Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。
* 将一个字符替换成另一个字符,插入一个字符,删除一个字符
* dp[i][j]表示word1第i-1字节为末尾子串和word2第j-1字节为末尾子串的最小编辑距离
*/
int Levenshtein(string word1, string word2) {
for (int i = 0; i <= word1.size(); ++i) {
dp[i][0] = i;
}
for (int j = 0; j <= word2.size(); ++j) {
dp[0][j] = j;
}
for (int i = 1; i <= word1.size(); ++i) {
for (int j = 1; j <= word2.size(); ++j) {
if (word1[i-1] == word2[j-1]) {
dp[i][j] = dp[i - 1][j - 1];
} else {
dp[i][j] = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1);
dp[i][j] = min(dp[i][j], dp[i - 1][j - 1] + 1);
}
}
}
return dp[word1.size()][word2.size()];
}
int main() {
string str1, str2;
while (cin >> str1 >> str2) {
cout << Levenshtein(str1, str2) << endl;
}
return 0;
}