#动态规划

#动态规划
while True:
    try:
        s1 = '#'+input()
        s2 = '#'+input()
        m1, m2 = len(s1), len(s2)
        # 用一个占位符表示字符串的开头
        l = [[0 for i in range(m1)] for j in range(m2)]
        for i in range(m2):
            l[i][0] = i
        for j in range(m1):
            l[0][j] = j
        for i in range(1,m2):
            for j in range(1,m1):
                # [i,j]处来自于[i-1,j] [i,j-1] [i-1,j-1]这三个方向走来,
                # l[i-1,j]+1 和l[i,j-1]+1对应着增删,l[i-1][j-1]对应着改,当s1[i]==s2[j]时不用改,否则改
                left = l[i-1][j]+1
                down = l[i][j-1]+1
                left_down = l[i-1][j-1]
                # 当两个点不相同时,左上方加一,否则不用修改
                if s1[j] != s2[i]:
                        left_down += 1
                l[i][j] = min(left, down, left_down)
        print(l[-1][-1])
    except:
        break