#include<bits/stdc++.h>
using namespace std;
int f[2002][2002];
char s1[2002],s2[2002];
int i,j,k,m,n;
int main()
{
scanf("%s%s",s1,s2);
m=strlen(s1);
n=strlen(s2);
for(i=1;i<=m;i++)//当s2为空 s1要一个个添
f[i][0]=i;
for(i=1;i<=n;i++)//当s1为空 s2要一个个减掉
f[0][i]=i;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
if(s1[i-1]==s2[j-1]) f[i][j]=f[i-1][j-1]; //相等不处理 步数不变
else f[i][j]=min(min(f[i-1][j],f[i][j-1]),f[i-1][j-1])+1;//本来是i-1,j-1 j长度加一,i长度加一,ij都加一 分别是减s1,添s1,改s1
printf("%d\n",f[m][n]);
return 0;
}