#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;
}