#include using namespace std; #define EPS (1e-10) #define REP (i,n) for (int i = 0; i<(n);i++) typedef long double ld; typedef long long ll; typedef pair ii; typedef pair dd; typedef vector vi; typedef vector vll; typedef vector vd; int lev(string &S1, string &S2, int i1, int i2, vector &d) { // cout << i1 << " " << i2 << endl; if (d[i1][i2] != -1) return d[i1][i2]; else if (i1 == 0) return i2; else if (i2 == 0) return i1; else { d[i1][i2] = min( 1 + lev(S1, S2, i1-1, i2, d), 1 + lev(S1, S2, i1, i2-1, d) ); if (S1[i1-1] == S2[i2-1] || S1[i1-1] == '*' || S2[i2-1] == '*') { d[i1][i2] = min( d[i1][i2], lev(S1, S2, i1-1, i2-1, d) ); } return d[i1][i2]; } } int main() { ios::sync_with_stdio(false); string s1, s2; cin >> s1 >> s2; string S1, S2; int res = 0; for(int i = 0; i < s1.length(); ++i) { if (0 <= s1[i]-'0' && s1[i]-'0' <= 9) { ++res; for(int j = 0; j < s1[i]-'0'; ++j) { S1 += '*'; } } else { S1 += s1[i]; } } for(int i = 0; i < s2.length(); ++i) { if (0 <= s2[i]-'0' && s2[i]-'0' <= 9) { ++res; for(int j = 0; j < s2[i]-'0'; ++j) { S2 += '*'; } } else { S2 += s2[i]; } } // cout << S1 << endl; // cout << S2 << endl; vector d(S1.length()+1, vi(S2.length()+1, -1)); cout << res+lev(S1, S2, S1.length(), S2.length(), d) << endl; }