← Home
package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var t int
	if _, err := fmt.Fscan(in, &t); err != nil {
		return
	}

	for tc := 0; tc < t; tc++ {
		var n, q int
		fmt.Fscan(in, &n, &q)

		pref := make([]int, n+1)
		pos := make(map[int][]int)

		pos[0] = append(pos[0], 0)
		for i := 1; i <= n; i++ {
			var a int
			fmt.Fscan(in, &a)
			pref[i] = pref[i-1] ^ a
			pos[pref[i]] = append(pos[pref[i]], i)
		}

		for k := 0; k < q; k++ {
			var l, r int
			fmt.Fscan(in, &l, &r)

			if pref[r]^pref[l-1] == 0 {
				fmt.Fprintln(out, "YES")
				continue
			}

			val1 := pref[r]
			list1 := pos[val1]
			idx1 := sort.Search(len(list1), func(i int) bool {
				return list1[i] >= l
			})

			val2 := pref[l-1]
			list2 := pos[val2]
			idx2 := sort.Search(len(list2), func(i int) bool {
				return list2[i] > r-1
			}) - 1

			if idx1 < len(list1) && idx2 >= 0 && list1[idx1] < list2[idx2] {
				fmt.Fprintln(out, "YES")
			} else {
				fmt.Fprintln(out, "NO")
			}
		}
	}
}