```go
package main
import (
"bufio"
"fmt"
"os"
)
func gcd(a, b int64) int64 {
for b != 0 {
a, b = b, a%b
}
if a < 0 {
return -a
}
return a
}
func main() {
in := bufio.NewReaderSize(os.Stdin, 1<<20)
var n, m int
if _, err := fmt.Fscan(in, &n, &m); err != nil {
return
}
x := make([]int64, n)
for i := 0; i < n; i++ {
fmt.Fscan(in, &x[i])
}
ps := make([]int64, m)
for j := 0; j < m; j++ {
fmt.Fscan(in, &ps[j])
}
var g int64 = 0
base := x[0]
for i := 1; i < n; i++ {
g = gcd(g, x[i]-base)
}
for j := 0; j < m; j++ {
if g%ps[j] == 0 {
fmt.Println("YES")
fmt.Printf("%d %d\n", base, j+1)
return
}
}
fmt.Println("NO")
}
```