#AT2039. C - The Kth Time Query

C - The Kth Time Query

C - 第K个查询

分值: 300300

问题描述

给定一个长度为NN的序列A=(a1,a2,,aN)A = (a_1, a_2, \dots, a_N)。按照下面的方式对QQ次查询进行处理。

  • 查询ii:给定一对整数(xi,ki)(x_i, k_i)。依次从序列AA的开头查看元素 a1,a2,a_1, a_2, \dots。第ii次查询要找到数字xix_i在序列AA中的第kik_i次出现的位置。如果不存在这样的元素,输出-1。

约束条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • 0ai1090 \leq a_i \leq 10^9(1iN)(1 \leq i \leq N)
  • 0xi1090 \leq x_i \leq 10^9(1iQ)(1 \leq i \leq Q)
  • 1kiN1 \leq k_i \leq N(1iQ)(1 \leq i \leq Q)
  • 所有输入值均为整数。

输入

输入以以下格式从标准输入中给出:

NN QQ

a1a_1 a2a_2 \dots aNa_N

x1x_1 k1k_1

x2x_2 k2k_2

\vdots

xQx_Q kQk_Q

输出

输出应包含QQ行,每行为对应查询的答案。

示例

输入1

6 8
1 1 2 3 1 2
1 1
1 2
1 3
1 4
2 1
2 2
2 3
4 1

输出1

1
2
5
-1
3
6
-1
-1

解释:数字1在序列AA中出现在位置a1,a2,a5a_1, a_2, a_5,所以第1个查询到第4个查询分别的答案为1, 2, 5, -1。

输入2

3 2
0 1000000000 999999999
1000000000 1
123456789 1

输出2

2
-1