#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 = 18;
int n, q;
vector<int> adj[N];
int depth[N]; // depth[u] = Độ sâu của đỉnh u
int up[LOG][N]; // up[i][u] = Tổ tiên thứ 2^i của u
void dfs(int u, int p) {
up[0][u] = p;
for (int i = 1; i < LOG; i++) {
up[i][u] = up[i - 1][up[i - 1][u]];
}
for (int v : adj[u]) {
if (v == p) continue;
depth[v] = depth[u] + 1;
dfs(v, u);
}
}
// Tổ tiên thứ k của u
int findKthAncestor(int u, int k) {
if (k > depth[u]) return -1;
for (int i = 0; i < LOG; i++) {
if ((k >> i) & 1) {
u = up[i][u];
}
}
return u;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> q;
for (int u = 2; u <= n; u++) {
int p; cin >> p;
adj[u].push_back(p);
adj[p].push_back(u);
}
depth[1] = 0;
dfs(1, 1);
while (q--) {
int u, k;
cin >> u >> k;
cout << findKthAncestor(u, k) << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKY29uc3QgaW50IE4gPSAyZTUgKyA1OyAKY29uc3QgaW50IExPRyA9IDE4OyAgIAoKaW50IG4sIHE7IAp2ZWN0b3I8aW50PiBhZGpbTl07IAoKaW50IGRlcHRoW05dOyAvLyBkZXB0aFt1XSA9IMSQ4buZIHPDonUgY+G7p2EgxJHhu4luaCB1IAppbnQgdXBbTE9HXVtOXTsgLy8gdXBbaV1bdV0gPSBU4buVIHRpw6puIHRo4bupIDJeaSBj4bunYSB1IAoKdm9pZCBkZnMoaW50IHUsIGludCBwKSB7Cgl1cFswXVt1XSA9IHA7ICAgCglmb3IgKGludCBpID0gMTsgaSA8IExPRzsgaSsrKSB7CgkJdXBbaV1bdV0gPSB1cFtpIC0gMV1bdXBbaSAtIDFdW3VdXTsgCgl9CgoJZm9yIChpbnQgdiA6IGFkalt1XSkgewoJCWlmICh2ID09IHApIGNvbnRpbnVlOyAgCgkJZGVwdGhbdl0gPSBkZXB0aFt1XSArIDE7IAoJCWRmcyh2LCB1KTsgCgl9Cn0KCi8vIFThu5UgdGnDqm4gdGjhu6kgayBj4bunYSB1IAppbnQgZmluZEt0aEFuY2VzdG9yKGludCB1LCBpbnQgaykgewoJaWYgKGsgPiBkZXB0aFt1XSkgcmV0dXJuIC0xOyAKCWZvciAoaW50IGkgPSAwOyBpIDwgTE9HOyBpKyspIHsKCQlpZiAoKGsgPj4gaSkgJiAxKSB7CgkJCXUgPSB1cFtpXVt1XTsgCgkJfQoJfQoJcmV0dXJuIHU7IAp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgCgljaW4udGllKG51bGxwdHIpOyAJCgljaW4gPj4gbiA+PiBxOyAKCglmb3IgKGludCB1ID0gMjsgdSA8PSBuOyB1KyspIHsKCQlpbnQgcDsgY2luID4+IHA7ICAKCQlhZGpbdV0ucHVzaF9iYWNrKHApOyAKCQlhZGpbcF0ucHVzaF9iYWNrKHUpOyAKCX0KCglkZXB0aFsxXSA9IDA7IAoJZGZzKDEsIDEpOyAKCgl3aGlsZSAocS0tKSB7CgkJaW50IHUsIGs7IAoJCWNpbiA+PiB1ID4+IGs7ICAKCQljb3V0IDw8IGZpbmRLdGhBbmNlc3Rvcih1LCBrKSA8PCAnXG4nOyAKCX0KfQ==