#H1002. Occurrences

Occurrences

时间限制: 2s

空间限制: 1024MB

Cuber QQ 现在有一个长度为 nn 的序列 a1,a2,,ana_1,a_2,\cdots,a_n,他要求你处理他给出的 mm 次询问,每一次询问都给出两个整数 xxyy,要求你找到一个 ii,将他给出的序列分成两部分 a1,a2,,aia_1,a_2,\cdots,a_iai+1,ai+2,,ana_{i+1},a_{i+2},\cdots,a_n 使得在 a1,a2,,aia_1,a_2,\cdots,a_ixx 出现的次数 xˉ\bar{x} 和在 ai+1,ai+2,,ana_{i+1},a_{i+2},\cdots,a_nyy 出现的次数 yˉ\bar{y} 的乘积 xˉ×yˉ\bar{x}\times \bar{y} 最大。

输入格式

第一行包含两个正整数 n,mn,m (1n,m1051\leq n,m\leq 10^5)。

第二行 nn 个正整数 a1,a2,,ana_1,a_2,\cdots,a_n (1ai1091\leq a_i\leq 10^9)。

接下来 mm 行,每行两个数 x,yx,y (1x,y1091\leq x,y\leq 10^9),表示一次询问。

输出格式

对于每一个询问输出一行,一共 mm 行,表示答案。

样例 1

输入

5 2
1 2 3 2 1
1 2
2 2

输出

2
1

样例解释

两个查询的答案分别为:

  • 分割序列为 112,3,2,12,3,2,1,则 xˉ=1,yˉ=2\bar{x}=1,\bar{y}=2
  • 分割序列为 1,21,23,2,13,2,1,则 xˉ=1,yˉ=1\bar{x}=1,\bar{y}=1

样例 2

见下发文件 occurrences2.in/out.

数据范围

编号 额外限制 分值
1 n,m100n,m\le 100 20
2 n,m5000n,m\le 5000 30
3 50