#include using namespace std; typedef long long int LL; const int N = 2007; const int M = 11007; string s, t; int dp[M][N]; int addToAns; string read(){ string tmp, ret; cin >> tmp; ret.push_back('#'); for(int i = 0; i < (int)tmp.size(); ++i) if('0' <= tmp[i] && tmp[i] <= '9'){ ++addToAns; for(int j = 0; j < tmp[i] - '0'; ++j) ret.push_back('*'); } else ret.push_back(tmp[i]); return ret; } bool equal(char a, char b){ return a == '*' || b == '*' || a == b; } int main(){ s = read(); t = read(); for(int i = 1; i < M; ++i) dp[i][0] = i; for(int i = 1; i < N; ++i) dp[0][i] = i; int n = s.size(), m = t.size(); for(int i = 1; i <= n; ++i) for(int j = 1; j <= m; ++j){ int res = 2 * M; if(equal(s[i], t[j])) res = min(res, dp[i - 1][j - 1]); res = min(res, dp[i - 1][j] + 1); res = min(res, dp[i][j - 1] + 1); dp[i][j] = res; } printf("%d\n", dp[n][m] + addToAns); return 0; }