#include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair P; typedef pair P3; typedef pair PP; constexpr ll MOD = ll(1e9 + 7); constexpr int IINF = INT_MAX; constexpr ll LLINF = LLONG_MAX; constexpr int MAX_N = int(1e5) + 5; constexpr double EPS = 1e-9; constexpr int di[] = {0, 1, 0, -1}, dj[] = {1, 0, -1, 0}; #define REP(i, n) for (int i = 0; i < n; i++) #define REPR(i, n) for (int i = n; i >= 0; i--) #define SORT(v) sort((v).begin(), (v).end()) #define SORTR(v) sort((v).rbegin(), (v).rend()) #define ALL(v) (v).begin(), (v).end() int solve(vector &a, vector &b){ int n = a.size(), m = b.size(); vector > dp(n+1, vector(m+1, IINF)); dp[0][0] = 0; for(int i=0;i=26){ dp[i+1][j+1] = min(dp[i+1][j+1], dp[i][j+1]); } if(b[j]>=26){ dp[i+1][j+1] = min(dp[i+1][j+1], dp[i+1][j]); } if(a[i]>=52){ dp[i+1][j+1] = min(dp[i+1][j+1], dp[i+1][j] + (a[i]%26!=b[j]%26)); } if(b[j]>=52){ dp[i+1][j+1] = min(dp[i+1][j+1], dp[i][j+1] + (a[i]%26!=b[j]%26)); } } } return dp[n][m]; } int main() { int n, m; string A, B; cin >> A >> B; vector a, b; n = A.size(); m = B.size(); A.push_back('#'); B.push_back('#'); for(int i=0;i