N,M = list(map(int, input().split(' '))) S = input() T = input() dp = [] for _ in range(N+1): dp.append([0 for _ in range(M+1)]) for i in range(N+1): dp[i][0] = i for j in range(M+1): dp[0][j] = j for i in range(1,N+1): for j in range(1,M+1): cost = 0 if S[i-1] == T[j-1] else 1 dp[i][j] = min(dp[i-1][j] + 1, dp[i][j-1] + 1, dp[i-1][j-1] + cost) print(dp[N][M])