```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var t int
fmt.Fscan(in, &t)
for ; t > 0; t-- {
var w, h int
fmt.Fscan(in, &w, &h)
var k int
fmt.Fscan(in, &k)
bottom := make([]int, k)
for i := 0; i < k; i++ {
fmt.Fscan(in, &bottom[i])
}
spanBottom := bottom[k-1] - bottom[0]
fmt.Fscan(in, &k)
top := make([]int, k)
for i := 0; i < k; i++ {
fmt.Fscan(in, &top[i])
}
spanTop := top[k-1] - top[0]
fmt.Fscan(in, &k)
left := make([]int, k)
for i := 0; i < k; i++ {
fmt.Fscan(in, &left[i])
}
spanLeft := left[k-1] - left[0]
fmt.Fscan(in, &k)
right := make([]int, k)
for i := 0; i < k; i++ {
fmt.Fscan(in, &right[i])
}
spanRight := right[k-1] - right[0]
ans := spanBottom * h
if v := spanTop * h; v > ans {
ans = v
}
if v := spanLeft * w; v > ans {
ans = v
}
if v := spanRight * w; v > ans {
ans = v
}
fmt.Fprintln(out, ans)
}
}
```