#include using namespace std; int n,m; char s[1001],t[1001]; int dp[1001][1001]; int main(){ cin >> n >> m >> s >> t; for(int i=0;i<=n;++i){ for(int j=0;j<=m;++j){ if(i==0){ dp[i][j]=j; }else if(j==0){ dp[i][j]=i; }else if(s[i-1]==t[j-1]){ dp[i][j]=dp[i-1][j-1]; }else{ dp[i][j]=min(dp[i-1][j-1],min(dp[i-1][j],dp[i][j-1]))+1; } } } cout << dp[n][m] << endl; return 0; }