#include <bits/stdc++.h>
using namespace std;
typedef long long int ll; 
ll dp[1005][1005];


int main(){
	string s,t;
	cin>>s>>t; 
	ll n = s.size();
	ll m = t.size();
	
	for(ll i=0;i<=n+2;i++){
		for(ll j=0;j<=m+2;j++){
			dp[i][j] = 1e18 ; 
		}
	}
	
	vector<vector<ll>> ps(n + 5, vector<ll>(30 + 1, 0)); 
	vector<vector<ll>> pt(m + 5, vector<ll>(30 + 1, 0)); 
	
	for(ll i=0;i<=n-1;i++){
	    ll c = s[i]-'a';
	    c++;
	    ps[i+1][c] = 1;
	}
	
	for(ll j=0;j<=m-1;j++){
	    ll c = t[j]-'a';
	    c++;
	    pt[j+1][c] = 1;
	}
	
	for(ll i=1;i<=n;i++){
	    for(ll j=1;j<=28;j++){
	        ps[i][j] = ps[i][j] + ps[i-1][j];
	    }
	}
	
	for(ll i=1;i<=m;i++){
	    for(ll j=1;j<=28;j++){
	        pt[i][j] = pt[i][j] + pt[i-1][j];
	    }
	}
	
	
	
	
	dp[0][0] = 0 ; 
	
	for(ll i=0;i<s.size();i++){
		char c = s[i];ll g = 0;
			for(ll u=0;u<=i-1;u++){
				if(s[u]>c){
					g++;
				}
			}
		dp[i+1][0] = dp[i][0] + g;	//cout<<g<<"\n";
		}
		
	for(ll j=0;j<t.size();j++){
		char c = t[j];ll g = 0;
			for(ll u=0;u<=j-1;u++){
				if(t[u]>c){
					g++;
				}
			}
		dp[0][j+1] = dp[0][j] + g;	//cout<<g<<"\n";
		}	
		
		
		
		
		
	
	for(ll i=0;i<s.size();i++){
		for(ll j=0;j<t.size();j++){
			//dp[i+1][j+1]-->dp[i][j+1].....
			//[0.....i-1]+[0......j]
			char c = s[i];ll g = 0;
			for(ll u=0;u<=i-1;u++){
				if(s[u]>c){
					g++;
				}
			}
			for(ll u=0;u<=j;u++){
				if(t[u]>c){
					g++;
				}
			}
			
			dp[i+1][j+1] = min(dp[i+1][j+1],dp[i][j+1] + g); 
			
			//dp[i+1][j+1]-->dp[i+1][j]....
			//[0..........i]+[0.....j-1]......
			
			c = t[j];g = 0;
			for(ll u=0;u<=i;u++){
				if(s[u]>c){
					g++;
				}
			}
			for(ll u=0;u<=j-1;u++){
				if(t[u]>c){
					g++;
				}
			}
			
			dp[i+1][j+1] = min(dp[i+1][j+1],dp[i+1][j] + g);
			//cout<<i+1<<" "<<j+1<<" "<<dp[i+1][j+1]<<"\n";
			
			
		}
	}
	
	cout<<dp[n][m];
	
	
	
	return 0; 
}