N, M = map(int, input().split()) S = input() T = input() dp = [[float('inf')] * (N + 1) for i in range(M + 1)] # 初期化 for i in range(M + 1): dp[i][0] = i for j in range(N + 1): dp[0][j] = j for i in range(1, M + 1): for j in range(1, N + 1): dp[i][j] = min(dp[i-1][j-1] + (S[j-1] != T[i-1]), dp[i-1][j] + 1, dp[i][j-1] + 1) print(dp[M][N])