#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define nl '\n'
#define ff first
#define ss second
#define pb push_back
#define sik(x) {cout << x << nl; return;}
const ll maxn = 2e5+20, mod = 1e9 + 7, inf = 1e10;
typedef pair<ll,ll> pii;
ll n, q;
vector<ll> g[maxn], ans;
set<pii> qr[maxn];
vector<ll> pth;
bool vis[maxn];
void dfs(ll v) {
vis[v] = 1;
pth.pb(v);
for (auto [k, i] : qr[v]) {
if (pth.size() - k - 1 >= 0) ans[i] = pth[pth.size() - k - 1];
else ans[i] = -1;
}
for (auto u : g[v]) {
if (!vis[u]) dfs(u);
}
pth.pop_back();
}
int32_t main() {
//cout << fixed << setprecision(5);
cin.tie(0)->sync_with_stdio(0);
cin >> n >> q, ans.assign(q, {});
for (int u = 2, v ; u <= n ; u ++) {
cin >> v;
g[u].pb(v);
g[v].pb(u);
}
for (int i = 0 ; i < q ; i ++) {
ll x, k; cin >> x >> k;
qr[x].insert({k, i});
}
dfs(1);
for (auto i : ans) cout << i << nl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKI2RlZmluZSBubCAnXG4nCiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBzaWsoeCkge2NvdXQgPDwgeCA8PCBubDsgcmV0dXJuO30KY29uc3QgbGwgbWF4biA9IDJlNSsyMCwgbW9kID0gMWU5ICsgNywgaW5mID0gMWUxMDsKdHlwZWRlZiBwYWlyPGxsLGxsPiBwaWk7CgpsbCBuLCBxOwp2ZWN0b3I8bGw+IGdbbWF4bl0sIGFuczsKc2V0PHBpaT4gcXJbbWF4bl07CnZlY3RvcjxsbD4gcHRoOwpib29sIHZpc1ttYXhuXTsKCnZvaWQgZGZzKGxsIHYpIHsKICB2aXNbdl0gPSAxOwogIHB0aC5wYih2KTsKICBmb3IgKGF1dG8gW2ssIGldIDogcXJbdl0pIHsKICAgIGlmIChwdGguc2l6ZSgpIC0gayAtIDEgPj0gMCkgYW5zW2ldID0gcHRoW3B0aC5zaXplKCkgLSBrIC0gMV07CiAgICBlbHNlIGFuc1tpXSA9IC0xOwogIH0KICBmb3IgKGF1dG8gdSA6IGdbdl0pIHsKICAgIGlmICghdmlzW3VdKSBkZnModSk7CiAgfQogIHB0aC5wb3BfYmFjaygpOwp9CgppbnQzMl90IG1haW4oKSB7CiAgLy9jb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbig1KTsKICBjaW4udGllKDApLT5zeW5jX3dpdGhfc3RkaW8oMCk7IAogIGNpbiA+PiBuID4+IHEsIGFucy5hc3NpZ24ocSwge30pOwogIGZvciAoaW50IHUgPSAyLCB2IDsgdSA8PSBuIDsgdSArKykgewogICAgY2luID4+IHY7CiAgICBnW3VdLnBiKHYpOwogICAgZ1t2XS5wYih1KTsKICB9CiAgZm9yIChpbnQgaSA9IDAgOyBpIDwgcSA7IGkgKyspIHsKICAgIGxsIHgsIGs7IGNpbiA+PiB4ID4+IGs7CiAgICBxclt4XS5pbnNlcnQoe2ssIGl9KTsKICB9CiAgZGZzKDEpOwoKICBmb3IgKGF1dG8gaSA6IGFucykgY291dCA8PCBpIDw8IG5sOwp9Cg==