← Home
```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")
		}
	}
}
```