#include <bits/stdc++.h>
using namespace std;
using ll=long long;
vector<ll> gr[300002];
ll n, i,x,q,mn,a[300002],y,timer,tin[300002];
set<pair<ll,ll>>st;
signed main(){
    cin >> n >> q;
    for(i=2;i<=n;i++){
        cin >> x;
        gr[x].push_back(i);
    }
    for(i=1;i<=n;i++){
        cin >> a[i];
    }
    while(x--){
        cin >> x;
        mn=1e9;
        for(i=1;i<=n;i++){
            timer=0;
            y=a[i];
            a[i]=0;
            st.insert({-a[1],1});
            while(!st.empty()){
                auto v=(*st.begin());
                tin[v.second]=timer;
                timer++;
                st.erase(v);
                for(auto u:gr[v.second]){
                    st.insert({-a[u],u});
                }
            }
            mn=min(mn,tin[x]);
            a[i]=y;
        }
        cout << mn << ' ';
    }
    return 0;
}