#include<bits/stdc++.h>
#define N 510000
using namespace std;
vector<int>v[N];
int n;
int dfs(int x,int lim){
    if(!v[x].size()){
        return x>lim;
    }
    int num0=0,num1=0;
    for(auto to:v[x]){
        int tmp = dfs(to,lim);
        if(tmp==0)num0++;
        if(tmp==1)num1++;
    }
    if(num0<num1)return 1;
    if(num1<num0)return 0;
    return -1;
}
bool check(int lim){
    return dfs(1,lim)<=0;
}
int main(){
    std::ios::sync_with_stdio(0);
    cin>>n;
    for(int i=2;i<=n;i++){
        int p;
        cin>>p;
        v[p].push_back(i);
    }
    int l=1,r=n,ans;
    while(l<=r){
        int mid=(l+r)>>1;
        if(check(mid))ans=mid,r=mid-1;
        else l=mid+1;
    }
    cout<<ans<<'\n';
    return 0;
}