#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;
const int LOG = 30;
int n, q;
int t[N];
int nxt[LOG][N]; // nxt[i][u]: Đỉnh mà ta đến được nếu xuất phát từ đỉnh u và đi qua 2^i cổng dịch chuyển
void precompute() {
for (int u = 1; u <= n; u++) nxt[0][u] = t[u];
for (int i = 1; i < LOG; i++) {
for (int u = 1; u <= n; u++) {
nxt[i][u] = nxt[i - 1][nxt[i - 1][u]];
}
}
}
// Đỉnh mà ta đến được nếu xuất phát từ đỉnh u và đi qua k cổng dịch chuyển
int jump(int u, int k) {
for (int i = 0; i < LOG; i++) {
if ((k >> i) & 1) u = nxt[i][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, k;
cin >> u >> k;
int ans = jump(u, k);
cout << ans << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOyAgCgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsgIAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOyAgCgpjb25zdCBpbnQgSU5GID0gMWU5OyAgCmNvbnN0IGxsIExJTkYgPSAxZTE4OyAgCgpjb25zdCBpbnQgTiA9IDJlNSArIDU7ICAKY29uc3QgaW50IExPRyA9IDMwOyAgCgppbnQgbiwgcTsKaW50IHRbTl07ICAgCgppbnQgbnh0W0xPR11bTl07IC8vIG54dFtpXVt1XTogxJDhu4luaCBtw6AgdGEgxJHhur9uIMSRxrDhu6NjIG7hur91IHh14bqldCBwaMOhdCB04burIMSR4buJbmggdSB2w6AgxJFpIHF1YSAyXmkgY+G7lW5nIGThu4tjaCBjaHV54buDbgkKCnZvaWQgcHJlY29tcHV0ZSgpIHsKCWZvciAoaW50IHUgPSAxOyB1IDw9IG47IHUrKykgbnh0WzBdW3VdID0gdFt1XTsgCgoJZm9yIChpbnQgaSA9IDE7IGkgPCBMT0c7IGkrKykgewoJCWZvciAoaW50IHUgPSAxOyB1IDw9IG47IHUrKykgewoJCQlueHRbaV1bdV0gPSBueHRbaSAtIDFdW254dFtpIC0gMV1bdV1dOwoJCX0KCX0KfQoKLy8gxJDhu4luaCBtw6AgdGEgxJHhur9uIMSRxrDhu6NjIG7hur91IHh14bqldCBwaMOhdCB04burIMSR4buJbmggdSB2w6AgxJFpIHF1YSBrIGPhu5VuZyBk4buLY2ggY2h1eeG7g24KaW50IGp1bXAoaW50IHUsIGludCBrKSB7Cglmb3IgKGludCBpID0gMDsgaSA8IExPRzsgaSsrKSB7CgkJaWYgKChrID4+IGkpICYgMSkgdSA9IG54dFtpXVt1XTsKCX0KCXJldHVybiB1OyAKfQoKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgIAkKCWNpbiA+PiBuID4+IHE7IAoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gdFtpXTsgCgoJcHJlY29tcHV0ZSgpOyAKCgl3aGlsZSAocS0tKSB7CgkJaW50IHUsIGs7IAoJCWNpbiA+PiB1ID4+IGs7IAoJCWludCBhbnMgPSBqdW1wKHUsIGspOyAKCQljb3V0IDw8IGFucyA8PCAnXG4nOyAKCX0KfQ==