An array of integers [b_1, b_2, \dots, b_m] is called good if it can be divided into two non-empty groups such that the bitwise of the elements in the first group is equal to the bitwise of the elements in the second group.
For example, the array [1, 7, 3, 11] is good, because it can be split into the groups and , where 1~OR~3 = 3 and 7~AND~11 = 3.
You are given an array [a_1, a_2, \dots, a_n]. Answer queries of the form: is the subarray [a_l, a_{l+1}, \dots, a_r] good?
The first line contains two integers and q~(1 \le n \le 10^5, 1 \le q \le 10^5) — the length of the array and the number of queries.
The second line contains integers a_1, a_2, \dots, a_n~(0 \le a_i \le 2^{30}-1) — the elements of the array.
Each of the next lines contains two integers l_i and r_i~(1 \le l_i \le r_i \le n) describing the -th query.
For each query, print "YES" if the corresponding subarray is good, and "NO" otherwise.
Example 1