#include #include #include #include #include #include #include #include #include #define rep(index,num) for(int index=0;index>argument #define prin(argument) cout< pint; const int INF = 1<<29; int main(){ string S,T; int n,m; scan(n);scan(m); scan(S);scan(T); int dp[1001][1001]; rep(i,S.size()+1){ dp[i][0]=i; } rep(j,T.size()+1){ dp[0][j]=j; } rep(i,S.size()){ rep(j,T.size()){ if(S[i]==T[j]) dp[i+1][j+1]=min(dp[i][j],min(dp[i][j+1]+1,dp[i+1][j]+1)); else dp[i+1][j+1]=min(dp[i][j]+1,min(dp[i][j+1]+1,dp[i+1][j]+1)); } } prin(dp[S.size()][T.size()]); return 0; }