// Source: https://usaco.guide/general/io
#include <bits/stdc++.h>
using namespace std;
int t[250001];
int s[250001][18];
int main() {
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int n, m;
cin >> n >> m;
for(int i = 1; i <= n; i++) {
cin >> t[i];
s[i][0] = t[i];
}
for(int j = 1; j <= 17; j++) {
for(int i = 1; i <= n; i++) {
s[i][j] = s[s[i][j - 1]][j - 1];
}
}
for(int i = 1; i <= m; i++) {
int x, d;
cin >> x >> d;
for(int b = 0; b <= 17 && (1 << b) <= d; b++) {
if((1 << b) & d) {
x = s[x][b];
}
}
cout << x << '\n';
}
}