#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main(){ int N, M; cin >> N >> M; string S, T; cin >> S >> T; vector> dp(N+1, vector(M+1)); for (int i=0; i<=N; i++) dp[i][0] = i; for (int j=0; j<=M; j++) dp[0][j] = j; 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; dp[i][j] = min(dp[i][j], dp[i-1][j-1] + (S[i-1] == T[j-1] ? 0 : 1)); } } cout << dp[N][M] << endl; return 0; }