#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
unordered_map<int, vector<int>> mp;
vector<int> v, vis;
int dfs(int s)
{
if(vis[s]) return v[s];
vis[s] = 1;
int x = mp[s].size();
for(auto k : mp[s])
{
x += dfs(k);
}
return v[s] = x;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
ll n, x;
cin>> n;
for(int i=2; i<=n; i++)
{
cin>>x;
mp[x].push_back(i);
}
v.assign(n+1, 0);
vis.assign(n+1, 0);
for(int i=1; i<=n; i++)
{
if(!vis[i])
{
dfs(i);
}
}
for(int i=1; i<=n; i++)
{
cout<<v[i]<<" ";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp1bm9yZGVyZWRfbWFwPGludCwgdmVjdG9yPGludD4+IG1wOwp2ZWN0b3I8aW50PiB2LCB2aXM7CgppbnQgZGZzKGludCBzKQp7CglpZih2aXNbc10pIHJldHVybiB2W3NdOwoJdmlzW3NdID0gMTsKCWludCB4ID0gbXBbc10uc2l6ZSgpOwoJZm9yKGF1dG8gayA6IG1wW3NdKQoJewoJCXggKz0gZGZzKGspOwoJfQoJcmV0dXJuIHZbc10gPSB4Owp9CgppbnQgbWFpbigpIHsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJY2luLnRpZShOVUxMKTsKCWNvdXQudGllKE5VTEwpOwoJbGwgbiwgeDsKCWNpbj4+IG47CgoJZm9yKGludCBpPTI7IGk8PW47IGkrKykKCXsKCQljaW4+Png7CgkJbXBbeF0ucHVzaF9iYWNrKGkpOwoJfQoJdi5hc3NpZ24obisxLCAwKTsKCXZpcy5hc3NpZ24obisxLCAwKTsKCWZvcihpbnQgaT0xOyBpPD1uOyBpKyspCgl7CgkJaWYoIXZpc1tpXSkKCQl7CgkJCWRmcyhpKTsKCQl9Cgl9Cglmb3IoaW50IGk9MTsgaTw9bjsgaSsrKQoJewoJCWNvdXQ8PHZbaV08PCIgIjsKCX0KCXJldHVybiAwOwp9