package main import ( "bufio" "fmt" "os" "strconv" "strings" ) func main() { sc := bufio.NewScanner(os.Stdin) sc.Buffer(make([]byte, 200000*11+2), 200000*11+2) sc.Scan() T, _ := strconv.Atoi(sc.Text()) for t := 0; t < T; t++ { sc.Scan() ss := strings.Fields(sc.Text()) N, _ := strconv.Atoi(ss[0]) M, _ := strconv.Atoi(ss[1]) sc.Scan() aa := strings.Fields(sc.Text()) A := make([]int, N) for i := 0; i < N; i++ { A[i], _ = strconv.Atoi(aa[i]) } if solve(N, M, A) { fmt.Println("Yes") } else { fmt.Println("No") } } } func solve(n int, m int, a []int) bool { b := 0 for i := 0; i < n; i++ { if b > a[i] { return false } if m < a[i] { return false } b = m - a[i] } return true }