#include <cstring>
#include <string>
#include <map>
#include <deque>
#include <queue>
#include <stack>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <set>
#include <list>
#include <climits>
using namespace std;
#define MAX 1005
int DP[MAX][MAX];
string X, Y;
#define SET(DP, MAX) memset(DP, -1, sizeof(DP))
int Minimize(int i, int j, int end_x, int end_y){
if(i > end_x || j > end_y) return 0;
if(DP[i][j] != -1) return DP[i][j];
int res;
if(X[i] == Y[j]) res = Minimize(i+1, j+1, end_x, end_y);
else res = 1 + min(min(Minimize(i, j+1, end_x, end_y), Minimize(i+1, j, end_x, end_y)), Minimize(i+1, j+1, end_x, end_y));
return DP[i][j] = res;
}
int main(){
// freopen("in.txt", "r", stdin);
SET(DP, -1);
int LX;
while(scanf("%d", &LX) != EOF){
cin.ignore(); getline(cin, X);
int LY; scanf("%d", &LY);
cin.ignore(); getline(cin, Y);
printf("%d\n", Minimize(0, 0, X.size()-1, Y.size()-1));
SET(DP, -1);
}
return 0;
}
I2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxkZXF1ZT4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxpb21hbmlwPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxsaXN0PgojaW5jbHVkZSA8Y2xpbWl0cz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIE1BWCAxMDA1CgppbnQgRFBbTUFYXVtNQVhdOwpzdHJpbmcgWCwgWTsKCiNkZWZpbmUgU0VUKERQLCBNQVgpIG1lbXNldChEUCwgLTEsIHNpemVvZihEUCkpCgppbnQgTWluaW1pemUoaW50IGksIGludCBqLCBpbnQgZW5kX3gsIGludCBlbmRfeSl7CiAgICBpZihpID4gZW5kX3ggfHwgaiA+IGVuZF95KSByZXR1cm4gMDsKCWlmKERQW2ldW2pdICE9IC0xKSByZXR1cm4gRFBbaV1bal07CglpbnQgcmVzOwoJaWYoWFtpXSA9PSBZW2pdKSByZXMgPSBNaW5pbWl6ZShpKzEsIGorMSwgZW5kX3gsIGVuZF95KTsKCWVsc2UgcmVzID0gMSArIG1pbihtaW4oTWluaW1pemUoaSwgaisxLCBlbmRfeCwgZW5kX3kpLCBNaW5pbWl6ZShpKzEsIGosIGVuZF94LCBlbmRfeSkpLCBNaW5pbWl6ZShpKzEsIGorMSwgZW5kX3gsIGVuZF95KSk7CglyZXR1cm4gRFBbaV1bal0gPSByZXM7Cn0KCmludCBtYWluKCl7Ci8vCWZyZW9wZW4oImluLnR4dCIsICJyIiwgc3RkaW4pOwoJU0VUKERQLCAtMSk7CglpbnQgTFg7Cgl3aGlsZShzY2FuZigiJWQiLCAmTFgpICE9IEVPRil7CgkJY2luLmlnbm9yZSgpOyBnZXRsaW5lKGNpbiwgWCk7CgkJaW50IExZOyBzY2FuZigiJWQiLCAmTFkpOwoJCWNpbi5pZ25vcmUoKTsgZ2V0bGluZShjaW4sIFkpOwoJCXByaW50ZigiJWRcbiIsIE1pbmltaXplKDAsIDAsIFguc2l6ZSgpLTEsIFkuc2l6ZSgpLTEpKTsKCQlTRVQoRFAsIC0xKTsKCX0KCXJldHVybiAwOwp9