#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 5e3 + 5;
int n, m;
string s, t;
int dp[N][N]; // dp[i][j] = Số thao tác ít nhất để biến đổi s[1..i] thành t[1..j]
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> s >> t;
n = s.size(), m = t.size();
s = ' ' + s;
t = ' ' + t;
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= m; j++) dp[i][j] = INF;
}
dp[0][0] = 0;
for (int j = 1; j <= m; j++) dp[0][j] = j;
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++) {
if (s[i] == t[j]) {
dp[i][j] = dp[i - 1][j - 1];
}
else {
dp[i][j] = min({dp[i][j - 1], dp[i - 1][j], dp[i - 1][j - 1]}) + 1;
}
}
}
cout << dp[n][m] << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAogCnR5cGVkZWYgbG9uZyBsb25nIGxsOyAgCnR5cGVkZWYgcGFpcjxpbnQsIGludD4gaWk7ICAKIApjb25zdCBpbnQgSU5GID0gMWU5OyAgCmNvbnN0IGxsIExJTkYgPSAxZTE4OyAgCiAKY29uc3QgaW50IE4gPSA1ZTMgKyA1OyAKIAppbnQgbiwgbTsgIApzdHJpbmcgcywgdDsgIAppbnQgZHBbTl1bTl07IC8vIGRwW2ldW2pdID0gU+G7kSB0aGFvIHTDoWMgw610IG5o4bqldCDEkeG7gyBiaeG6v24gxJHhu5VpIHNbMS4uaV0gdGjDoG5oIHRbMS4ual0gCiAKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IAoJY2luLnRpZShudWxscHRyKTsgIAkKCWNpbiA+PiBzID4+IHQ7ICAKCW4gPSBzLnNpemUoKSwgbSA9IHQuc2l6ZSgpOyAgCglzID0gJyAnICsgczsgIAoJdCA9ICcgJyArIHQ7ICAKIAogCglmb3IgKGludCBpID0gMDsgaSA8PSBuOyBpKyspIHsKCQlmb3IgKGludCBqID0gMDsgaiA8PSBtOyBqKyspIGRwW2ldW2pdID0gSU5GOyAKCX0KIAoJZHBbMF1bMF0gPSAwOyAgIAoJZm9yIChpbnQgaiA9IDE7IGogPD0gbTsgaisrKSBkcFswXVtqXSA9IGo7ICAgCglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGRwW2ldWzBdID0gaTsgICAKIAoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CgkJZm9yIChpbnQgaiA9IDE7IGogPD0gbTsgaisrKSB7CgkJCWlmIChzW2ldID09IHRbal0pIHsKCQkJCWRwW2ldW2pdID0gZHBbaSAtIDFdW2ogLSAxXTsgCgkJCX0KCQkJZWxzZSB7CgkJCQlkcFtpXVtqXSA9IG1pbih7ZHBbaV1baiAtIDFdLCBkcFtpIC0gMV1bal0sIGRwW2kgLSAxXVtqIC0gMV19KSArIDE7IAoJCQl9CgkJfQoJfQogCgljb3V0IDw8IGRwW25dW21dIDw8ICdcbic7IAp9