길이가 $N$인 수열 $A_1, A_2, \ldots, A_N$과 정수 $K$가 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오.
l r: $l \le i \le j \le r$이면서 $A_i, A_{i+1}, \ldots, A_j$를 XOR한 값이 $K$인 $(i, j)$ 쌍의 개수를 출력한다.
입력
첫째 줄에 수열의 크기 $N$ $(1 \le N \le 100{,}000)$과 $K$ $(0 \le K \le 1{,}000{,}000)$이 주어진다.
둘째 줄에는 $A_1, A_2, \ldots, A_N$이 주어진다. $(0 \le A_i \le 1{,}000{,}000)$
셋째 줄에는 쿼리의 개수 $M$ $(1 \le M \le 100{,}000)$이 주어진다.
넷째 줄부터 $M$개의 줄에는 쿼리 $l, r$이 한 줄에 하나씩 주어진다. $(1 \le l \le r \le n)$
출력
각각의 쿼리마다 정답을 한 줄에 하나씩 출력한다.
Sample
Input
6 3 1 2 1 1 0 3 2 1 6 3 5
Output
7 0
Sample
Input
5 1 1 1 1 1 1 3 1 5 2 4 1 3
Output
9 4 4