def main(): n, m = map(int, input().split()) s = input() t = input() # dp[i][j]:si番目までの文字列からtj番目までの文字列に変更する回数 dp = [[0] * (m + 1) for _ in range(n + 1)] for j in range(1,m+1): dp[0][j] = j for i in range(1,n+1): dp[i][0] = i for i in range(n): si = s[i] for j in range(m): tj = t[j] if si == tj: dp[i + 1][j + 1] = min(dp[i][j], dp[i][j + 1] + 1, dp[i + 1][j] + 1) else: dp[i + 1][j + 1] = min(dp[i][j] + 1, dp[i][j + 1] + 1, dp[i + 1][j] + 1) print(dp[n][m]) main()