package main
import (
"fmt"
)
func main() {
var s1, s2 string
if _, err := fmt.Scan(&s1, &s2); err != nil {
return
}
n := len(s1)
if n == 0 {
fmt.Println(0)
return
}
dp := []int{-1, -1, -1, -1}
base0 := 0
if s1[0] == 'X' {
base0 |= 1
}
if s2[0] == 'X' {
base0 |= 2
}
dp[base0] = 0
for i := 1; i < n; i++ {
nextDp := []int{-1, -1, -1, -1}
base := 0
if s1[i] == 'X' {
base |= 1
}
if s2[i] == 'X' {
base |= 2
}
for prevMask := 0; prevMask < 4; prevMask++ {
if dp[prevMask] == -1 {
continue
}
if dp[prevMask] > nextDp[base] {
nextDp[base] = dp[prevMask]
}
if prevMask == 0 && (base&1) == 0 {
if dp[prevMask]+1 > nextDp[base|1] {
nextDp[base|1] = dp[prevMask] + 1
}
}
if prevMask == 0 && (base&2) == 0 {
if dp[prevMask]+1 > nextDp[base|2] {
nextDp[base|2] = dp[prevMask] + 1
}
}
if (prevMask&1) == 0 && base == 0 {
if dp[prevMask]+1 > nextDp[base|3] {
nextDp[base|3] = dp[prevMask] + 1
}
}
if (prevMask&2) == 0 && base == 0 {
if dp[prevMask]+1 > nextDp[base|3] {
nextDp[base|3] = dp[prevMask] + 1
}
}
}
dp = nextDp
}
ans := 0
for _, v := range dp {
if v > ans {
ans = v
}
}
fmt.Println(ans)
}