#include <bits/stdc++.h>
using namespace std;
long long solve(const string& s1, const string& s2) {
int n = s1.size();
// count total potholes
long long total = 0;
for (int i = 0; i < n; i++) {
total += (s1[i] == 'x') + (s2[i] == 'x');
}
auto w = [&](int row, int col) {
return (row == 0 ? s1[col] : s2[col]) == 'x' ? 1 : 0;
};
// dp[row] = min potholes missed to reach this row at current col
long long dp0 = w(0, 0);
long long dp1 = w(1, 0);
for (int i = 0; i < n; i++) {
// try switching lanes at current column
long long new0 = min(dp0, dp1 + w(0, i));
long long new1 = min(dp1, dp0 + w(1, i));
dp0 = new0;
dp1 = new1;
if (i == n - 1) break;
// move to next column
dp0 += w(0, i + 1);
dp1 += w(1, i + 1);
}
return total - min(dp0, dp1);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s1, s2;
cin >> s1 >> s2;
cout << solve(s1, s2) << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpsb25nIGxvbmcgc29sdmUoY29uc3Qgc3RyaW5nJiBzMSwgY29uc3Qgc3RyaW5nJiBzMikgewogICAgaW50IG4gPSBzMS5zaXplKCk7CiAgICAKICAgIC8vIGNvdW50IHRvdGFsIHBvdGhvbGVzCiAgICBsb25nIGxvbmcgdG90YWwgPSAwOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICB0b3RhbCArPSAoczFbaV0gPT0gJ3gnKSArIChzMltpXSA9PSAneCcpOwogICAgfQogICAgCiAgICBhdXRvIHcgPSBbJl0oaW50IHJvdywgaW50IGNvbCkgewogICAgICAgIHJldHVybiAocm93ID09IDAgPyBzMVtjb2xdIDogczJbY29sXSkgPT0gJ3gnID8gMSA6IDA7CiAgICB9OwogICAgCiAgICAvLyBkcFtyb3ddID0gbWluIHBvdGhvbGVzIG1pc3NlZCB0byByZWFjaCB0aGlzIHJvdyBhdCBjdXJyZW50IGNvbAogICAgbG9uZyBsb25nIGRwMCA9IHcoMCwgMCk7CiAgICBsb25nIGxvbmcgZHAxID0gdygxLCAwKTsKICAgIAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAvLyB0cnkgc3dpdGNoaW5nIGxhbmVzIGF0IGN1cnJlbnQgY29sdW1uCiAgICAgICAgbG9uZyBsb25nIG5ldzAgPSBtaW4oZHAwLCBkcDEgKyB3KDAsIGkpKTsKICAgICAgICBsb25nIGxvbmcgbmV3MSA9IG1pbihkcDEsIGRwMCArIHcoMSwgaSkpOwogICAgICAgIGRwMCA9IG5ldzA7CiAgICAgICAgZHAxID0gbmV3MTsKICAgICAgICAKICAgICAgICBpZiAoaSA9PSBuIC0gMSkgYnJlYWs7CiAgICAgICAgCiAgICAgICAgLy8gbW92ZSB0byBuZXh0IGNvbHVtbgogICAgICAgIGRwMCArPSB3KDAsIGkgKyAxKTsKICAgICAgICBkcDEgKz0gdygxLCBpICsgMSk7CiAgICB9CiAgICAKICAgIHJldHVybiB0b3RhbCAtIG1pbihkcDAsIGRwMSk7Cn0KCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgIAogICAgc3RyaW5nIHMxLCBzMjsKICAgIGNpbiA+PiBzMSA+PiBzMjsKICAgIAogICAgY291dCA8PCBzb2x2ZShzMSwgczIpIDw8ICJcbiI7CiAgICByZXR1cm4gMDsKfQ==