#include #include #include #include #include #include #include using namespace std; typedef long long LL; int main(){ int sn, tn; string s, t; cin >> sn >> tn; cin >> s >> t; vector > ed(sn+1, vector(tn+1, sn*tn)); for(int y = 0; y <= sn; y++){ ed[y][0] = y; } for(int x = 0; x <= tn; x++){ ed[0][x] = x; } for(int y = 1; y <= sn; y++){ for(int x = 1; x <= tn; x++){ if(s[y-1] == t[x-1]){ ed[y][x] = min(ed[y][x], ed[y-1][x-1]); }else{ ed[y][x] = min(ed[y][x], ed[y-1][x-1]+1); } ed[y][x] = min(ed[y][x], ed[y-1][x]+1); ed[y][x] = min(ed[y][x], ed[y][x-1]+1); } } cout << ed[sn][tn] << endl; return 0; }