1948:数字追踪挑战

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:普通裁判 命题人:
提交:3 解决:2

题目描述

在蒜头小镇的科技庆典上,蒜头君设计了一个名为“数字侦探”的趣味游戏,吸引了众多小伙伴参与。游戏中,蒜头君准备了一个正整数数组,里面藏有许多神秘的数字线索。每位小侦探面临的挑战是,根据给出的查询要求,追踪特定数字在过去出现的位置。

你将获得一个由不超过 $10^5$ 范围的正整数组成的列表 nums,该列表下标从 $1$ 开始,列表的长度不超过 $10^6$。接下来,会有一系列的查询请求到来,每个请求以形式 x,y 给出,意味着你需要查找数字 y 最后一次出现在位置 x 之前的下标。

比如,如果 nums = [1,2,3,2,5],当查询为 3 2 时,因为 2 在位置 3 之前最后一次出现在位置 2,所以答案是 2。但如果之前没有出现过 y,则输出 -1

作为蒜头君邀请的小小侦探,你的目标是快速响应每一个查询,精准找出或确定数字 y 在指定位置 x 之前最后一次现身的位置下标,揭开隐藏在数组背后的秘密。

输入

第一行包含两个整数 $n$ 和 $m$,表示数组的长度和询问的次数。

第二行包含 $n$ 个整数,表示数组的 $n$ 个元素。

接下来 $m$ 行包含 $m$ 次询问,操作输入格式为:x y,表示你需要查找数字 y 最后一次出现在位置 x 之前的下标。如果不存在,则输出 -1

$1\le n,m\le 10^6$

输出

输出 $m$ 行,对于每次询问输出答案。

样例输入-1 复制

5 2
1 2 3 2 5
3 2
3 5

样例输出-1 复制

2
-1

样例输入-2 复制

4 1
1 1 1 2
4 1

样例输出-2 复制

3