#include <stdio.h>
#include <stdlib.h>
#define NMAX 250000
#define LMAX 17
int a[LMAX+1][NMAX+1];
int stramos( int q, int p ) {
int j, rez;
j = 0;
rez = q;
for( ; p > 0; p /= 2 ) {
rez = ( 1 - p % 2 ) * rez + ( p % 2 ) * a[j][rez];
j++;
}
return rez;
}
int main() {
FILE *fin, *fout;
int n, m, i, j, q, p;
fin = fopen( "stramosi.in", "r" );
fout = fopen( "stramosi.out", "w" );
fscanf( fin, "%d%d", &n, &m );
for( i = 1; i <= n; i++ )
fscanf( fin, "%d", &a[0][i] );
for( i = 1; ( 1 << i ) <= n; i++ )
for( j = 1; j <= n; j++ )
a[i][j] = a[i-1][a[i-1][j]];
for( i = 0; i < m; i++ ) {
fscanf( fin, "%d%d", &q, &p );
fprintf( fout, "%d\n", stramos( q, p ) );
}
fclose( fin );
fclose( fout );
return 0;
}