/*input
5
3 10 6 7 9
1
1
3
3
*/
#include<bits/stdc++.h>
using namespace std;
const int N=5e5 + 10;
#define int long long
vector<int> adjlist[N];int n, arr[N], dp1[N][51], dp2[N][51];//1 is strictly increasing at most j, 2 is strictly decreasing at least j.
int ans;
void dfs(int i){
int ct=0;
for(int j=0;j<51;j++) dp1[i][j]=dp2[i][j]=0;
for(auto j:adjlist[i]){
dfs(j);
for(int k=1;k<51;k++)
{
dp1[i][k]=max(dp1[i][k], dp1[j][k]);
if(k==arr[i]) dp1[i][k]=max(dp1[i][k], dp1[j][k-1] + arr[i]);
dp2[i][k]=max(dp2[i][k], dp2[j][k]);
if(k==arr[i])
{
if(k==50) dp2[i][k]=50;
else dp2[i][k]=max(dp2[i][k], dp2[j][k+1] + arr[i]);
}
}
}
if(adjlist[i].empty()) dp1[i][arr[i]]=dp2[i][arr[i]]=arr[i];
for(int k=2;k<51;k++)
{
dp1[i][k]=max(dp1[i][k], dp1[i][k-1]);
}
for(int k=49;k>0;k--)
{
dp2[i][k]=max(dp2[i][k], dp2[i][k+1]);
}
for(int j=0;j<51;j++)
{
if(j==50) ans=max(ans, dp1[i][j]);
else ans=max(ans, dp1[i][j] + dp2[i][j+1]);
}
}
signed main()
{
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
//freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>arr[i];
}
for(int i=1;i<n;i++)
{
int p;cin>>p;
adjlist[p].push_back(i+1);
}
// cout<<"ok";
ans=0;
dfs(1);
cout<<ans;
}
LyppbnB1dAo1CjMgMTAgNiA3IDkKMQoxCjMKMwoKKi8KI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE49NWU1ICsgMTA7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwp2ZWN0b3I8aW50PiBhZGpsaXN0W05dO2ludCBuLCBhcnJbTl0sIGRwMVtOXVs1MV0sIGRwMltOXVs1MV07Ly8xIGlzIHN0cmljdGx5IGluY3JlYXNpbmcgYXQgbW9zdCBqLCAyIGlzIHN0cmljdGx5IGRlY3JlYXNpbmcgYXQgbGVhc3Qgai4KaW50IGFuczsKdm9pZCBkZnMoaW50IGkpewoJaW50IGN0PTA7Cglmb3IoaW50IGo9MDtqPDUxO2orKykgZHAxW2ldW2pdPWRwMltpXVtqXT0wOwoJZm9yKGF1dG8gajphZGpsaXN0W2ldKXsKCQlkZnMoaik7CgkJZm9yKGludCBrPTE7azw1MTtrKyspCgkJewoJCQlkcDFbaV1ba109bWF4KGRwMVtpXVtrXSwgZHAxW2pdW2tdKTsKCQkJaWYoaz09YXJyW2ldKSBkcDFbaV1ba109bWF4KGRwMVtpXVtrXSwgZHAxW2pdW2stMV0gKyBhcnJbaV0pOwoJCQlkcDJbaV1ba109bWF4KGRwMltpXVtrXSwgZHAyW2pdW2tdKTsKCQkJaWYoaz09YXJyW2ldKQoJCQl7CgkJCQlpZihrPT01MCkgZHAyW2ldW2tdPTUwOwoJCQkgCWVsc2UgZHAyW2ldW2tdPW1heChkcDJbaV1ba10sIGRwMltqXVtrKzFdICsgYXJyW2ldKTsKCQkJfQoJCX0KCX0KCWlmKGFkamxpc3RbaV0uZW1wdHkoKSkgZHAxW2ldW2FycltpXV09ZHAyW2ldW2FycltpXV09YXJyW2ldOwoKCWZvcihpbnQgaz0yO2s8NTE7aysrKQoJewoJCWRwMVtpXVtrXT1tYXgoZHAxW2ldW2tdLCBkcDFbaV1bay0xXSk7Cgl9Cglmb3IoaW50IGs9NDk7az4wO2stLSkKCXsKCQlkcDJbaV1ba109bWF4KGRwMltpXVtrXSwgZHAyW2ldW2srMV0pOwoJfQoJZm9yKGludCBqPTA7ajw1MTtqKyspCgl7CgkJaWYoaj09NTApIGFucz1tYXgoYW5zLCBkcDFbaV1bal0pOwoJCWVsc2UgYW5zPW1heChhbnMsIGRwMVtpXVtqXSArIGRwMltpXVtqKzFdKTsKCX0KfQpzaWduZWQgbWFpbigpCnsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpO2Npbi50aWUoTlVMTCk7Y291dC50aWUoTlVMTCk7CgkvL2ZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pO2ZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsIHN0ZG91dCk7CgljaW4+Pm47Cglmb3IoaW50IGk9MTtpPD1uO2krKykKCXsKICAgIGNpbj4+YXJyW2ldOwoJfQoJZm9yKGludCBpPTE7aTxuO2krKykKCXsKCQlpbnQgcDtjaW4+PnA7CgkJYWRqbGlzdFtwXS5wdXNoX2JhY2soaSsxKTsKCX0KLy8JY291dDw8Im9rIjsKCWFucz0wOwoJZGZzKDEpOwoJY291dDw8YW5zOwp9