#include using namespace std; int n, a[200010], b[200010], ret; unordered_map >mp; unordered_map vis; void dfs(int u) { vis[u] = 1; ret = max(ret, u); for (int v : mp[u]) if (!vis[v]) dfs(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(a[i]+b[i]); dfs(1); cout << ret; }