数对
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给你一个长度为 n 的数组,共有 m 个查询,每次查询区间  中满足以下条件  的对数:




其中 and 表示按位与操作,xor 表示按位异或操作。

输入描述:

第一行两个整数 , 分别表示数组长度和查询次数。

第二行 n 个整数,

第三到  行,每行两个整数  ,表示查询的区间。

输出描述:

输出 m 行,每行一个整数,表示答案。
示例1

输入

复制
5 3
5 3 0 7 0 
1 3
2 5
3 4

输出

复制
0
1
0