N, M = map(int, input().split()) S = input() T = input() INF = 10**3 DP = [] for _ in range(N+1): DP.append([INF]*(M+1)) DP[0][0] = 0 for i in range(N): for j in range(M): if S[i] == T[j]: DP[i+1][j+1] = min(DP[i][j], DP[i+1][j] + 1, DP[i][j+1] + 1) else: DP[i+1][j+1] = min(DP[i+1][j+1], DP[i][j] + 1, DP[i+1][j] + 1, DP[i][j+1] + 1) print(DP[N][M])