#include using namespace std; int n, a[200010], b[200010], f[200010], vis[200010], ret; map >mp; void calc(int height) { ret = max(ret, height); for (int v : mp[height]) calc(height+v); } int main() { cin >> n; for (int i=1; i<=n; i++) cin >> a[i]; for (int i=1; i<=n; i++) cin >> b[i]; for (int i=1; i<=n; i++) mp[a[i]].push_back(b[i]); calc(1); cout << ret; }