#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 2e5 + 5;
int n, q;
int t[N];
int nxt[30][N]; // nxt[k][u]: là đỉnh mà ta đến được nếu xuất phát từ đỉnh u và đi qua 2^k cổng dịch chuyển
void precompute() {
for (int u = 1; u <= n; u++) nxt[0][u] = t[u];
for (int k = 1; k <= 29; k++) {
for (int u = 1; u <= n; u++) {
nxt[k][u] = nxt[k - 1][nxt[k - 1][u]];
}
}
}
// đỉnh mà ta đến được nếu xuất phát từ đỉnh u và đi qua i cổng dịch chuyển
int jump(int u, int i) {
for (int k = 0; k <= 29; k++) {
if (i & (1 << k)) {
u = nxt[k][u];
}
}
return u;
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
cin >> n >> q;
for (int i = 1; i <= n; i++) cin >> t[i];
precompute();
while (q--) {
int u, i;
cin >> u >> i;
int ans = jump(u, i);
cout << ans << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOyAgCgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsgIAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOyAgCgpjb25zdCBpbnQgSU5GID0gMWU5OyAgCmNvbnN0IGxsIExJTkYgPSAxZTE4OyAgCgpjb25zdCBpbnQgTiA9IDJlNSArIDU7ICAKCmludCBuLCBxOwppbnQgdFtOXTsgICAKCmludCBueHRbMzBdW05dOyAvLyBueHRba11bdV06IGzDoCDEkeG7iW5oIG3DoCB0YSDEkeG6v24gxJHGsOG7o2MgbuG6v3UgeHXhuqV0IHBow6F0IHThu6sgxJHhu4luaCB1IHbDoCDEkWkgcXVhIDJeayBj4buVbmcgZOG7i2NoIGNodXnhu4NuCQoKdm9pZCBwcmVjb21wdXRlKCkgewoJZm9yIChpbnQgdSA9IDE7IHUgPD0gbjsgdSsrKSBueHRbMF1bdV0gPSB0W3VdOyAKCglmb3IgKGludCBrID0gMTsgayA8PSAyOTsgaysrKSB7CgkJZm9yIChpbnQgdSA9IDE7IHUgPD0gbjsgdSsrKSB7CgkJCW54dFtrXVt1XSA9IG54dFtrIC0gMV1bbnh0W2sgLSAxXVt1XV07CgkJfQoJfQp9CgovLyDEkeG7iW5oIG3DoCB0YSDEkeG6v24gxJHGsOG7o2MgbuG6v3UgeHXhuqV0IHBow6F0IHThu6sgxJHhu4luaCB1IHbDoCDEkWkgcXVhIGkgY+G7lW5nIGThu4tjaCBjaHV54buDbgppbnQganVtcChpbnQgdSwgaW50IGkpIHsKCWZvciAoaW50IGsgPSAwOyBrIDw9IDI5OyBrKyspIHsKCQlpZiAoaSAmICgxIDw8IGspKSB7CgkJCXUgPSBueHRba11bdV07CgkJfQoJfQoJcmV0dXJuIHU7IAp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyAgCQoJY2luID4+IG4gPj4gcTsgCglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiB0W2ldOyAKCglwcmVjb21wdXRlKCk7IAoKCXdoaWxlIChxLS0pIHsKCQlpbnQgdSwgaTsgCgkJY2luID4+IHUgPj4gaTsgCgkJaW50IGFucyA9IGp1bXAodSwgaSk7IAoJCWNvdXQgPDwgYW5zIDw8ICdcbic7IAoJfQp9