package main
import (
"fmt"
"io"
"os"
"sort"
)
func main() {
data, _ := io.ReadAll(os.Stdin)
at := 0
readInt := func() int {
for at < len(data) && (data[at] < '0' || data[at] > '9') && data[at] != '-' {
at++
}
if at == len(data) {
return 0
}
sign := 1
if data[at] == '-' {
sign = -1
at++
}
val := 0
for at < len(data) && data[at] >= '0' && data[at] <= '9' {
val = val*10 + int(data[at]-'0')
at++
}
return val * sign
}
n := readInt()
if n == 0 && at == len(data) {
return
}
_ = readInt()
A := make([]int, n)
for i := 0; i < n; i++ {
A[i] = readInt()
}
m := readInt()
_ = readInt()
B := make([]int, m)
for i := 0; i < m; i++ {
B[i] = readInt()
}
maxSensors := 2
keys := make([]int, n+m)
for k := 0; k <= 29; k++ {
mask := (1 << (k + 1)) - 1
flip := 1 << k
idx := 0
for i := 0; i < n; i++ {
keys[idx] = A[i] & mask
idx++
}
for i := 0; i < m; i++ {
keys[idx] = (B[i] ^ flip) & mask
idx++
}
sort.Ints(keys)
currentRun := 1
for i := 1; i < len(keys); i++ {
if keys[i] == keys[i-1] {
currentRun++
} else {
if currentRun > maxSensors {
maxSensors = currentRun
}
currentRun = 1
}
}
if currentRun > maxSensors {
maxSensors = currentRun
}
}
fmt.Println(maxSensors)
}