#include<bits/stdc++.h>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int st[250002],sol[300002],p[250002];
vector<int>a[250002];
vector<pair<int,int>>q[250002];
int main()
{
int n,m,vf=0,i,x,y;
f>>n>>m;
for(i=1;i<=n;i++)
{
f>>x;
a[x].push_back(i);
}
for(i=1;i<=m;i++)
{
f>>x>>y;
q[x].push_back({y,i});
}
st[++vf]=0;
while(vf>0)
{
x=st[vf];
for(auto z:q[x])
sol[z.second]=st[max(0,vf-z.first)];
if(p[x]<(int)a[x].size())
st[++vf]=a[x][p[x]++];
else
vf--;
}
for(i=1;i<=m;i++)
g<<sol[i]<<'\n';
return 0;
}