#include <iostream>
#include <vector>
using namespace std;
int main() {
string s1,s2;
cin>>s1;
cin>>s2;
int n1=s1.size();
int n2=s2.size();
vector<vector<int>> dp(n1+1,vector(n2+1,0));
for(int i=1;i<n1+1;i++){
dp[i][0]=i;
}
for(int i=1;i<n2+1;i++){
dp[0][i]=i;
}
for(int i=1;i<n1+1;i++){
for(int j=1;j<n2+1;j++){
if(s1[i-1]==s2[j-1]){
dp[i][j]=dp[i-1][j-1];
}else{
//编辑距离等于左、上、左上编辑距离最小值+1
dp[i][j]=min(dp[i-1][j],min(dp[i][j-1],dp[i-1][j-1]))+1;
}
}
}
cout<<dp[n1][n2];
return 0;
}
// 64 位输出请用 printf("%lld")