/*
dp[i][j] số thao tác ít nhất để biến dãy số từ 1 đến i t hành từ 1 đến j
dp[i][j]=min(dp[i-1][j]+1(xóa), dp[i-1][j-1]+(1 nếu a[i]!=a[j]) (thay thế), dp[i][j-1]+1(thêm))
*/
#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 5005;
long long dp[MaxN][MaxN];
string n,m;
void input()
{
cin >> n >> m;
}
void solve()
{
n=" " + n;
m=" " + m;
long long len1 = n.size() - 1;
long long len2 = m.size() - 1;
for(long long i=0;i<=len1;i++)
dp[i][0]=i;
for(long long j=0;j<=len2;j++)
dp[0][j]=j;
for(long long i=1;i<=len1;i++)
{
for(long long j=1;j<=len2;j++)
{
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]+(n[i]!=m[j]));
}
}
cout << dp[len1][len2];
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
solve();
}
LyoKZHBbaV1bal0gc+G7kSB0aGFvIHTDoWMgw610IG5o4bqldCDEkeG7gyBiaeG6v24gZMOjeSBz4buRIHThu6sgMSDEkeG6v24gaSB0IGjDoG5oIHThu6sgMSDEkeG6v24gagpkcFtpXVtqXT1taW4oZHBbaS0xXVtqXSsxKHjDs2EpLCBkcFtpLTFdW2otMV0rKDEgbuG6v3UgYVtpXSE9YVtqXSkgKHRoYXkgdGjhur8pLCBkcFtpXVtqLTFdKzEodGjDqm0pKQoqLwojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsb25nIGxvbmcgTWF4TiA9IDUwMDU7CmxvbmcgbG9uZyBkcFtNYXhOXVtNYXhOXTsKc3RyaW5nIG4sbTsKCnZvaWQgaW5wdXQoKQp7CiAgICBjaW4gPj4gbiA+PiBtOwp9Cgp2b2lkIHNvbHZlKCkKewogICAgbj0iICIgKyBuOwogICAgbT0iICIgKyBtOwogICAgbG9uZyBsb25nIGxlbjEgPSBuLnNpemUoKSAtIDE7CiAgICBsb25nIGxvbmcgbGVuMiA9IG0uc2l6ZSgpIC0gMTsKCiAgICBmb3IobG9uZyBsb25nIGk9MDtpPD1sZW4xO2krKykKICAgICAgICBkcFtpXVswXT1pOwoKICAgIGZvcihsb25nIGxvbmcgaj0wO2o8PWxlbjI7aisrKQogICAgICAgIGRwWzBdW2pdPWo7CgogICAgZm9yKGxvbmcgbG9uZyBpPTE7aTw9bGVuMTtpKyspCiAgICB7CiAgICAgICAgZm9yKGxvbmcgbG9uZyBqPTE7ajw9bGVuMjtqKyspCiAgICAgICAgewogICAgICAgICAgICBkcFtpXVtqXT1taW4oZHBbaS0xXVtqXSsxLGRwW2ldW2otMV0rMSk7CiAgICAgICAgICAgIGRwW2ldW2pdPW1pbihkcFtpXVtqXSwKICAgICAgICAgICAgICAgICAgICAgICAgIGRwW2ktMV1bai0xXSsobltpXSE9bVtqXSkpOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IGRwW2xlbjFdW2xlbjJdOwp9CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwoKICAgIGlucHV0KCk7CiAgICBzb2x2ZSgpOwp9Cg==