#include <bits/stdc++.h>
using namespace std;
#define int long long

vector<vector<int>> graf;
vector<int> gl;

void dfs(int v){
    for (int u : graf[v]){
        gl[u] = gl[v] + 1;
        dfs(u);
    }
}

int32_t main()
{
    ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    int n, q; cin >> n >> q;
    graf.resize(n); gl.resize(n);
    for (int i = 0; i < n-1; ++i){
        int x; cin >> x;
        graf[x-1].push_bac(i+1);
    }
    dfs(0);
    vector<int> s(n); 
    for (int i = 0; i < n; ++i) cin >> s[i];
    while (q--){
        int u; cin >> u;
        cout << gl[u] << " ";
    }
}
