#include<bits/stdc++.h>
using namespace std;
using ll = long long;
ll N = 1e5 + 7;
vector<vector<int>> tree(N);
vector<int> color(N, 0);
vector<int> res(N, -1);
void dfs(int root, vector<vector<int>> color_level){
color_level[color[root]].push_back(root);
if (color_level[color[root]].size() > 1){
res[root] = color_level[color[root]].end()[-2];
}
for(auto node: tree[root]){
dfs(node, color_level);
}
}
int main(int argc, char const *argv[]){
ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL);
#ifndef ONLINE_JUDGE
freopen("inp.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
int n, c;
cin>>n>>c;
int v;
for (size_t i = 1; i <= n - 1; i++){
cin>>v;
tree[v].push_back(i + 1);
}
int co;
for (size_t i = 1; i <= n; i++){
cin>>co;
color[i] = co;
}
vector<vector<int>> color_level(N);
dfs(1, color_level);
for (size_t i = 1; i <= n; i++){
cout<<res[i]<<" ";
}
cout<<"\n";
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBsbCA9IGxvbmcgbG9uZzsKIApsbCBOID0gMWU1ICsgNzsKdmVjdG9yPHZlY3RvcjxpbnQ+PiB0cmVlKE4pOwp2ZWN0b3I8aW50PiBjb2xvcihOLCAwKTsKdmVjdG9yPGludD4gcmVzKE4sIC0xKTsKIAogCnZvaWQgZGZzKGludCByb290LCB2ZWN0b3I8dmVjdG9yPGludD4+IGNvbG9yX2xldmVsKXsgICAgICAgICAgICAKICAgIGNvbG9yX2xldmVsW2NvbG9yW3Jvb3RdXS5wdXNoX2JhY2socm9vdCk7CiAgICAKICAgIGlmIChjb2xvcl9sZXZlbFtjb2xvcltyb290XV0uc2l6ZSgpID4gMSl7ICAgICAgICAKICAgICAgICByZXNbcm9vdF0gPSBjb2xvcl9sZXZlbFtjb2xvcltyb290XV0uZW5kKClbLTJdOwogICAgfQogICAgCiAgICBmb3IoYXV0byBub2RlOiB0cmVlW3Jvb3RdKXsKICAgICAgICBkZnMobm9kZSwgY29sb3JfbGV2ZWwpOwogICAgfQp9CiAKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgY29uc3QgKmFyZ3ZbXSl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoTlVMTCk7Y291dC50aWUoTlVMTCk7CiAgICAjaWZuZGVmIE9OTElORV9KVURHRQogICAgICAgIGZyZW9wZW4oImlucC50eHQiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJvdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAgI2VuZGlmCiAKICAgIGludCBuLCBjOwogICAgY2luPj5uPj5jOwogCiAgICBpbnQgdjsKICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDw9IG4gLSAxOyBpKyspewogICAgICAgIGNpbj4+djsKICAgICAgICB0cmVlW3ZdLnB1c2hfYmFjayhpICsgMSk7CiAgICB9CiAgICAgICAgCiAgICBpbnQgY287CiAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8PSBuOyBpKyspewogICAgICAgIGNpbj4+Y287CiAgICAgICAgY29sb3JbaV0gPSBjbzsKICAgIH0KICAgICAgICAKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gY29sb3JfbGV2ZWwoTik7CiAgICBkZnMoMSwgY29sb3JfbGV2ZWwpOwogCiAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8PSBuOyBpKyspewogICAgICAgIGNvdXQ8PHJlc1tpXTw8IiAiOwogICAgfQogICAgCiAgICBjb3V0PDwiXG4iOwogCiAgICByZXR1cm4gMDsKfQ==