from math import inf
import sys
s = input().strip()
t = input().strip()
m, n = len(s), len(t)
dp = [[inf] * n for _ in range(m)]
for j in range(n):
if s[0] in t[:j+1]:
dp[0][j] = j
else:
dp[0][j] = j+1
for i in range(m):
if t[0] in s[:i+1]:
dp[i][0] = i
else:
dp[i][0] = i+1
for i in range(1, m):
for j in range(1, n):
if s[i] == t[j]:
dp[i][j] = dp[i-1][j-1]
else:
dp[i][j] = min([dp[i-1][j-1], dp[i][j-1], dp[i-1][j]]) + 1
print(dp[m-1][n-1])
# s[:i+1]与t[:j+1]的编辑距离
# def dfs(i, j):
# if i<0 and j<0:
# return 0
# if i<0:
# return j+1
# if j<0:
# return i+1
# if s[i] == t[j]:
# return dfs(i-1, j-1)
# return min([dfs(i-1, j-1) + 1, dfs(i, j-1) + 1, dfs(i-1, j)+1])
# s -> t
# print(dfs(len(s)-1, len(t)-1))