//https://www.nowcoder.com/practice/3959837097c7413a961a135d7104c314?tpId=37&rp=1&ru=%2Fexam%2Foj%2Fta&qru=%2Fexam%2Foj%2Fta&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26pageSize%3D50%26search%3D48%26tpId%3D37%26type%3D37&difficulty=&judgeStatus=&tags=&title=52&gioEnter=menu

#include <iostream>

using namespace std;

int main() {
    string s1, s2;

    while(cin >> s1 >> s2){
        s1 = " "+s1;
        s2 = " "+s2;

        int n = s1.size();
        int m = s2.size();

        int dp[n][m];

        for(int i = 0;i<n;i++)
            dp[i][0] = i;

        for(int i = 0;i<m;i++)
            dp[0][i] = i;

        for(int i = 1;i<n;i++)
            for(int j = 1;j<m;j++){
                dp[i][j] = min(dp[i-1][j], dp[i][j-1])+1;
                if(s1[i]==s2[j])
                    dp[i][j] = min(dp[i][j], dp[i-1][j-1]);
                else
                    dp[i][j] = min(dp[i][j], dp[i-1][j-1]+1);

            }

        cout << dp[n-1][m-1];


    }

}