#include <bits/stdc++.h>
using namespace std;
struct p{
int id, dep, F, F2;
}a[1005];
bool cmp(p x, p y){
return x.dep > y.dep;
}
int n, c;
bool fl[1005];
vector<int> vc[1005];
void dfs(int x, int fa){
a[x].dep = a[fa].dep + 1;
a[x].F = fa;
a[x].F2 = a[fa].F;
for(int i = 0; i < vc[x].size(); i++){
int v = vc[x][i];
if(v != fa){
dfs(v, x);
}
}
}
void dfss(int x, int d, int fa){
if(!d) return;
fl[x] = 1;
for(int i = 0; i < vc[x].size(); i++){
int v = vc[x][i];
if(v != fa) dfss(v, d - 1, x);
}
}
int main(){
cin >> n;
for(int i = 1; i <= n - 1; i++){
int a;
cin >> a;
vc[a].push_back(i);
vc[i].push_back(a);
}
dfs(1, 0);
sort(a + 1, a + n + 1, cmp);
for(int i = 1; i <= n; i++){
int v = a[i].id, fa = a[i].F, gfa = a[i].F2;
if(fl[v]) continue;
c++;
dfss(gfa, 2, 0);
}
cout << c;
return 0;
}