#include <iostream>
#include <fstream>
using namespace std;
fstream in("stramosi.in",ios::in),out("stramosi.out",ios::out);
const int N=1+25e4;
int t[18][N],n,m,lg[1<<18],z;
void log(){
int i,j=1;
lg[0]=0;
lg[1]=1;
lg[2]=1;
lg[3]=1;
for(i=4 ; i<=n ; i<<=1){
lg[i]=lg[i-1]+1;
for(j=i+1 ; j<=i<<1 ; j++){
lg[j]=lg[j-1];
}
}
}
int main()
{
in>>n>>z;
log();
for(int i=1 ; i<=n ; i++){
in>>t[0][i];
}
int g=N,p=0,l=lg[n]+1;
for(int i=1 ; i<18 ; i++){
for(int j=1 ; j<=n ; j++){
t[i][j]=t[i-1][t[i-1][j]];
}
}
int x,y;
for(int i=1 ; i<=z ; i++){
in>>x>>y;
p=0;
while(y){
if(y%2!=0)
x=t[p][x];
p++;
y>>=1;
}
out<<x<<"\n";
}
return 0;
}