编程题
### 问题描述
给出一个长度为 $n$ 的非负整数序列 $a$,你需要处理 $q$ 组询问。每组询问有两个参数 $l,r$。你需要判断 $a[l] + a[l+1] + \dots + a[r]$ 是否等于 $a[l] \oplus a[l+1] \oplus \dots \oplus a[r]$,其中 $\oplus$ 表示异或运算。
### 输入格式
第一行两个整数 $n,q \space (1 \leq n,q \leq 10^5)$,代表序列长度和询问个数。
接下来一行 $n$ 个整数 $a_i \space (1 \leq a_i \leq 10^9)$,代表序列的值。
接下来 $q$ 行,每行两个整数 $l,r \space (1 \leq l \leq r \leq n)$,代表询问的区间范围。
### 输出格式
输出 $q$ 行,每行一个答案。如果该组询问对应的区间和等于区间异或和,输出 `YES`。否则输出 `NO`。请注意,你需要严格按照大写字母来输出。
### 样例输入
```
10 10
1 3 4 24 2 4 15 8 1 9
1 5
3 4
2 4
6 7
8 8
1 9
3 4
2 8
1 2
7 10
```
### 样例输出
```
NO
YES
YES
NO
YES
NO
YES
NO
NO
NO
```