#include<bits/stdc++.h>
using namespace std;
vector<long long> diffcount, wealth;
struct emp{
long long wealth;
long long pos;
long long boss;
};
void wealthdfs(emp point, vector<emp> a[]){
long long counter = 0;
wealth.push_back(point.wealth);
for(long long i=0; i<a[point.pos].size(); i++){
for(int j=0; j<wealth.size(); j++){
counter = wealth[j]-a[point.pos][i].wealth;
diffcount.push_back(counter);
}
wealthdfs(a[point.pos][i], a);
wealth.pop_back();
}
}
int main(){
long long n;
cin >> n;
vector<emp> a(n);
for(long long i=0; i<n; i++){
cin >> a[i].wealth;
a[i].pos = i+1;
}
for(long long i=0; i<n; i++){
cin >> a[i].boss;
if(a[i].boss==-1){
a[i].boss = 0;
}
}
vector<emp> al[n+2];
for(long long i=0; i<n; i++){
al[a[i].boss].push_back(a[a[i].pos-1]);
}
wealthdfs(al[0][0], al);
cout << *max_element(diffcount.begin(), diffcount.end());
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3Rvcjxsb25nIGxvbmc+IGRpZmZjb3VudCwgd2VhbHRoOwoKc3RydWN0IGVtcHsKICAgIGxvbmcgbG9uZyB3ZWFsdGg7CiAgICBsb25nIGxvbmcgcG9zOwogICAgbG9uZyBsb25nIGJvc3M7Cn07Cgp2b2lkIHdlYWx0aGRmcyhlbXAgcG9pbnQsIHZlY3RvcjxlbXA+IGFbXSl7CiAgICBsb25nIGxvbmcgY291bnRlciA9IDA7CiAgICB3ZWFsdGgucHVzaF9iYWNrKHBvaW50LndlYWx0aCk7CiAgICBmb3IobG9uZyBsb25nIGk9MDsgaTxhW3BvaW50LnBvc10uc2l6ZSgpOyBpKyspewoKICAgICAgICBmb3IoaW50IGo9MDsgajx3ZWFsdGguc2l6ZSgpOyBqKyspewogICAgICAgICAgICBjb3VudGVyID0gd2VhbHRoW2pdLWFbcG9pbnQucG9zXVtpXS53ZWFsdGg7CiAgICAgICAgICAgIGRpZmZjb3VudC5wdXNoX2JhY2soY291bnRlcik7CiAgICAgICAgfQogICAgICAgIHdlYWx0aGRmcyhhW3BvaW50LnBvc11baV0sIGEpOwogICAgICAgICB3ZWFsdGgucG9wX2JhY2soKTsKICAgIH0KfQoKaW50IG1haW4oKXsKICAgIGxvbmcgbG9uZyBuOwogICAgY2luID4+IG47CiAgICB2ZWN0b3I8ZW1wPiBhKG4pOwogICAgZm9yKGxvbmcgbG9uZyBpPTA7IGk8bjsgaSsrKXsKICAgICAgICBjaW4gPj4gYVtpXS53ZWFsdGg7CiAgICAgICAgYVtpXS5wb3MgPSBpKzE7CiAgICB9CgogICAgZm9yKGxvbmcgbG9uZyBpPTA7IGk8bjsgaSsrKXsKICAgICAgICBjaW4gPj4gYVtpXS5ib3NzOwogICAgICAgIGlmKGFbaV0uYm9zcz09LTEpewogICAgICAgICAgICBhW2ldLmJvc3MgPSAwOwogICAgICAgIH0KICAgIH0KCiAgICB2ZWN0b3I8ZW1wPiBhbFtuKzJdOwogICAgZm9yKGxvbmcgbG9uZyBpPTA7IGk8bjsgaSsrKXsKICAgICAgICBhbFthW2ldLmJvc3NdLnB1c2hfYmFjayhhW2FbaV0ucG9zLTFdKTsKICAgIH0KICAgIHdlYWx0aGRmcyhhbFswXVswXSwgYWwpOwoKICAgIGNvdXQgPDwgKm1heF9lbGVtZW50KGRpZmZjb3VudC5iZWdpbigpLCBkaWZmY291bnQuZW5kKCkpOwp9Cg==