N,M=map(int,input().split()) A=input() B=input() INF=2**60 dp=[[INF]*(M+1) for i in range(N+1)] #print(dp) for i in range(N+1): dp[i][0]=i for j in range(M+1): dp[0][j]=j for i in range(N): for j in range(M): #置換 dp[i+1][j+1]=min(dp[i+1][j+1],dp[i][j]+(0 if A[i]==B[j] else 1)) #削除A dp[i+1][j+1]=min(dp[i+1][j+1],dp[i][j+1]+1) #削除B dp[i+1][j+1]=min(dp[i+1][j+1],dp[i+1][j]+1) #print(dp) print(dp[N][M])