package main import . "fmt" import . "os" import bf "bufio" func main() { rd := bf.NewReader(Stdin) var n, k int Fscan(rd,&n,&k) r := make([]int, n+1) var m1 int Fscan(rd,&m1) for ; m1 > 0; m1-- { var a int Fscan(rd,&a) r[a] = 1 } var m2 int Fscan(rd,&m2) for ; m2 > 0; m2-- { var b int Fscan(rd,&b) r[b] = -1 } dp := make([]int, n+1) dp[0] = -1 for i := 0; i < n; i++ { switch r[i+1] { case -1: dp[i+1] = -1 case 0: if dp[i+1] >= 0 { dp[i+1] = dp[i] } case 1: if dp[i+1] == 0 { dp[i+1] = 1 } } if k>1 && i+k < len(r) { switch r[i+k] { case -1: dp[i+k] = -1 case 0: dp[i+k] = dp[i] case 1: dp[i+k] = 1 } } } if dp[n] < 0 { Println("Yes") } else { Println("No") } }