#B3645. 数列前缀和 2

数列前缀和 2

题目描述

给定一个长度为 nn 的数列 aa,请回答 qq 次询问,每次给定 l,rl, r,请求出 i=lraimodp\prod\limits_{i = l}^r a_i \bmod p 的值,其中 p=1,145,141p = 1,145,141

输入格式

第一行是两个整数,依次表示数列长度 nn 和询问次数 qq
第二行有 nn 个整数,第 ii 个整数表示 aia_i
接下来 qq 行,每行两个整数 l,rl, r,表示一次询问。

输出格式

为了避免大量数据输出导致超时,请输出一行一个整数表示所有询问的答案的按位异或和。

5 3
1 2 3 4 5
2 3
3 4
2 4
18

提示

样例 1 解释

三次询问的答案依次为 6,12,246, 12, 24,按位异或和为 1818

数据规模与约定

  • 对于 30%30\% 的数据,保证 n,q103n,q \leq 10^3
  • 对于 60%60\% 的数据,保证 n,q105n, q \leq 10^5

对于全部的测试点,保证 1n,q1061 \leq n, q \leq 10^61lrn1 \leq l \leq r \leq n1ai<p1 \leq a_i < p

提示

你可以在这里学习如何线性求逆元,请尽可能做到 O(1)O(1) 回答单次询问。