#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, ans[maxn];
vector<ll> g[maxn];
vector<pii> qr[maxn];
vector<ll> pth;
bool vis[maxn];
void dfs(ll v) {
vis[v] = 1;
for (auto [k, i] : qr[v]) {
if (pth.size() - k >= 0) ans[i] = pth[pth.size() - k - 1];
else ans[i] = -1;
}
pth.pb(v);
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;
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].pb({k, i});
}
dfs(1);
for (int i = 0 ; i < q ; i ++) cout << ans[i] << nl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKI2RlZmluZSBubCAnXG4nCiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBzaWsoeCkge2NvdXQgPDwgeCA8PCBubDsgcmV0dXJuO30KY29uc3QgbGwgbWF4biA9IDJlNSsyMCwgbW9kID0gMWU5ICsgNywgaW5mID0gMWUxMDsKdHlwZWRlZiBwYWlyPGxsLGxsPiBwaWk7CgpsbCBuLCBxLCBhbnNbbWF4bl07CnZlY3RvcjxsbD4gZ1ttYXhuXTsKdmVjdG9yPHBpaT4gcXJbbWF4bl07CnZlY3RvcjxsbD4gcHRoOwpib29sIHZpc1ttYXhuXTsKCnZvaWQgZGZzKGxsIHYpIHsKICB2aXNbdl0gPSAxOwogIGZvciAoYXV0byBbaywgaV0gOiBxclt2XSkgewogICAgaWYgKHB0aC5zaXplKCkgLSBrID49IDApIGFuc1tpXSA9IHB0aFtwdGguc2l6ZSgpIC0gayAtIDFdOwogICAgZWxzZSBhbnNbaV0gPSAtMTsKICB9CiAgcHRoLnBiKHYpOwogIGZvciAoYXV0byB1IDogZ1t2XSkgewogICAgaWYgKCF2aXNbdV0pIGRmcyh1KTsKICB9CiAgcHRoLnBvcF9iYWNrKCk7Cn0KCmludDMyX3QgbWFpbigpIHsKICAvL2NvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDUpOwogIGNpbi50aWUoMCktPnN5bmNfd2l0aF9zdGRpbygwKTsgCiAgY2luID4+IG4gPj4gcTsKICBmb3IgKGludCB1ID0gMiwgdiA7IHUgPD0gbiA7IHUgKyspIHsKICAgIGNpbiA+PiB2OwogICAgZ1t1XS5wYih2KTsKICAgIGdbdl0ucGIodSk7CiAgfQogIGZvciAoaW50IGkgPSAwIDsgaSA8IHEgOyBpICsrKSB7CiAgICBsbCB4LCBrOyBjaW4gPj4geCA+PiBrOwogICAgcXJbeF0ucGIoe2ssIGl9KTsKICB9CiAgZGZzKDEpOwoKICBmb3IgKGludCBpID0gMCA7IGkgPCBxIDsgaSArKykgY291dCA8PCBhbnNbaV0gPDwgbmw7Cn0K