n, m = map(int, input().split()) s = input() t = input() memo = {} def dfs(i, j): if i == n and j == m: return 0 if (i,j) in memo: return memo[i,j] res = 1001 if i < n and j < m: res = min(res, int(s[i]!=t[j]) + dfs(i+1, j+1)) if i < n: res = min(res, 1 + dfs(i+1, j)) if j < m: res = min(res, 1 + dfs(i, j+1)) memo[i,j] = res return res print(dfs(0, 0))