#include <stdio.h>
#include <stdlib.h>
#define PUTMAX 17
int v[250001][PUTMAX+1]; ///Sunt mai putin de 2^18 stramosi maxim
int main(){
int n,i,j,m,x,p,put;
FILE *fin, *fout;
fin=fopen("stramosi.in","r");
fscanf(fin,"%d%d",&n,&m);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&v[i][0]);
}
for(i=1;i<PUTMAX+1;i++){
for(j=1;j<=n;j++){
v[j][i]=v[v[j][i-1]][i-1];
}
}
// for(i=0;i<PUTMAX+1;i++){
// for(j=0;j<=n;j++){
// printf("%d ",v[j][i]);
// }
// printf("\n");
// }
fout=fopen("stramosi.out","w");
for(i=0;i<m;i++){
fscanf(fin,"%d%d",&x,&p);
put=PUTMAX;
while(p>0){
if(p>= (1<<put)){
p-=1<<put;
x=v[x][put];
}
put--;
}
fprintf(fout,"%d\n",x);
}
fclose(fin);
fclose(fout);
return 0;
}