#include <iostream>
#include <vector>
#include <string>
using namespace std;
int calStringDistance (string A, string B)
{
    int n=(int)A.si***t)B.size();
    vector<vector<int>> dp(n+1,vector<int>(m+1,0));
    dp[0][0]=0;
    for(int i=1;i<=m;i++) dp[0][i]=i;
    for(int i=1;i<=n;i++) dp[i][0]=i;
    for(int i=1;i<=n;i++){
         for (int j=1; j<=m; ++j) {
            int one = dp[i-1][j] +1,two = dp[i][j-1]+1,three = dp[i-1][j-1];
            if(A[i-1]!=B[j-1]) three+=1;
            dp[i][j] = min(min(one,two),three);
        }
    }
    return dp[n][m];
}
int main(){
    string a,b;
    while(cin >> a >> b){
        cout << calStringDistance (a, b) <<endl;
    }
    return 0;
}
//大神的解法,不过还没完全看懂,先记下来