```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 n, k, m int
fmt.Fscan(in, &n, &k, &m)
b := make([]int, m)
for i := 0; i < m; i++ {
fmt.Fscan(in, &b[i])
}
d := (k - 1) / 2
if (n-m)%(k-1) != 0 {
fmt.Fprintln(out, "NO")
continue
}
ok := true
for i := 0; i < m; i++ {
left := b[i] - (i + 1)
right := (n - b[i]) - (m - (i + 1))
if left < d || right < d {
ok = false
break
}
}
if ok {
fmt.Fprintln(out, "YES")
} else {
fmt.Fprintln(out, "NO")
}
}
}
```