#include <iostream>
#include <vector>
#include <bits/stdc++.h>
#define mid size/2
#define pol *2+1
#define por *2+2
using namespace std;
int res[2001][2001];
int dfs(string s,string p){
if(res[s.size()][p.size()]!=0){
return res[s.size()][p.size()];
}
if(s.size()==0&&p.size()==0){
return 0;
}
if(s.size()==0){
return p.size();
}
if(p.size()==0){
return s.size();
}
if(s[0]==p[0]){
int l= dfs(s.substr(1,s.size()-1),p.substr(1,p.size()-1));
res[s.size()][p.size()]=l;
return l;
}
int ans=1<<30;
ans=min(ans,dfs(s,p.substr(1,p.size()-1)));
ans=min(ans,dfs(s.substr(1,s.size()-1),p.substr(1,p.size()-1)));
ans=min(ans,dfs(s.substr(1,s.size()-1),p));
ans++;
res[s.size()][p.size()]=ans;
return ans;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
string s1,s2;
cin>>s1>>s2;
cout<<dfs(s1,s2);
return 0;
}