```go
package main
import (
"bufio"
"fmt"
"os"
)
func scanInt64(scanner *bufio.Scanner) int64 {
scanner.Scan()
res := int64(0)
sign := int64(1)
for _, c := range scanner.Bytes() {
if c == '-' {
sign = -1
} else {
res = res*10 + int64(c-'0')
}
}
return res * sign
}
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
scanInt64(scanner)
scanInt64(scanner)
c := int(scanInt64(scanner))
var minX int64 = 4000000000000000000
var maxX int64 = -4000000000000000000
var minY int64 = 4000000000000000000
var maxY int64 = -4000000000000000000
for i := 0; i < c; i++ {
x := scanInt64(scanner)
y := scanInt64(scanner)
xp := x + y
yp := x - y
if xp < minX {
minX = xp
}
if xp > maxX {
maxX = xp
}
if yp < minY {
minY = yp
}
if yp > maxY {
maxY = yp
}
}
h := int(scanInt64(scanner))
var bestDist int64 = 4000000000000000000
var bestIdx int = -1
for i := 1; i <= h; i++ {
x := scanInt64(scanner)
y := scanInt64(scanner)
xp := x + y
yp := x - y
d1 := xp - minX
d2 := maxX - xp
d3 := yp - minY
d4 := maxY - yp
maxD := d1
if d2 > maxD {
maxD = d2
}
if d3 > maxD {
maxD = d3
}
if d4 > maxD {
maxD = d4
}
if maxD < bestDist {
bestDist = maxD
bestIdx = i
}
}
fmt.Printf("%d\n%d\n", bestDist, bestIdx)
}
```