#include <iostream>
#include <vector>
using namespace std;
#define maxN 100007
int n;
vector<int>child[maxN];
vector<int>curList;
int sz[maxN];
int ans[maxN];
void readData()
{
cin >> n;
int p;
for(int i = 2; i <= n; i++)
{
cin >> p;
child[p].push_back(i);
}
}
void dfs(int u)
{
sz[u] = 1;
int v;
for(int i = 0; i < child[u].size(); i++)
{
v = child[u][i];
dfs(v);
sz[u] += sz[v];
}
}
void calCentroid()
{
//for(int i = 0; i < curList.size(); i++)
// cout << curList[i] << " ";
//cout << "\n";
int j = 0;
for(int i = 0; i < curList.size(); i++)
{
while((curList.size()-j-1)*2>sz[curList[i]])
j++;
ans[curList[i]] = curList[j];
}
}
void hld(int u)
{
curList.push_back(u);
if(child[u].size() == 0)
{
calCentroid();
curList.clear();
return;
}
int x = 0;
for(int i = 1; i < child[u].size(); i++)
if(sz[child[u][i]] > sz[child[u][x]])
x = i;
hld(child[u][x]);
for(int i = 0; i < child[u].size(); i++)
if(i != x)
hld(child[u][i]);
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
readData();
dfs(1);
hld(1);
for(int i = 1; i <= n; i++)
cout << ans[i] << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgbWF4TiAxMDAwMDcKaW50IG47CnZlY3RvcjxpbnQ+Y2hpbGRbbWF4Tl07CnZlY3RvcjxpbnQ+Y3VyTGlzdDsKaW50IHN6W21heE5dOwppbnQgYW5zW21heE5dOwoKdm9pZCByZWFkRGF0YSgpCnsKICAgIGNpbiA+PiBuOwogICAgaW50IHA7CiAgICBmb3IoaW50IGkgPSAyOyBpIDw9IG47IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gcDsKICAgICAgICBjaGlsZFtwXS5wdXNoX2JhY2soaSk7CiAgICB9Cn0KCnZvaWQgZGZzKGludCB1KQp7CiAgICBzelt1XSA9IDE7CiAgICBpbnQgdjsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjaGlsZFt1XS5zaXplKCk7IGkrKykKICAgIHsKICAgICAgICB2ID0gY2hpbGRbdV1baV07CiAgICAgICAgZGZzKHYpOwogICAgICAgIHN6W3VdICs9IHN6W3ZdOwogICAgfQp9Cgp2b2lkIGNhbENlbnRyb2lkKCkKewogICAgLy9mb3IoaW50IGkgPSAwOyBpIDwgY3VyTGlzdC5zaXplKCk7IGkrKykKICAgIC8vICAgIGNvdXQgPDwgY3VyTGlzdFtpXSA8PCAiICI7CiAgICAvL2NvdXQgPDwgIlxuIjsKICAgIGludCBqID0gMDsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjdXJMaXN0LnNpemUoKTsgaSsrKQogICAgewogICAgICAgIHdoaWxlKChjdXJMaXN0LnNpemUoKS1qLTEpKjI+c3pbY3VyTGlzdFtpXV0pCiAgICAgICAgICAgIGorKzsKICAgICAgICBhbnNbY3VyTGlzdFtpXV0gPSBjdXJMaXN0W2pdOwogICAgfQp9Cgp2b2lkIGhsZChpbnQgdSkKewogICAgY3VyTGlzdC5wdXNoX2JhY2sodSk7CiAgICBpZihjaGlsZFt1XS5zaXplKCkgPT0gMCkKICAgIHsKICAgICAgICBjYWxDZW50cm9pZCgpOwogICAgICAgIGN1ckxpc3QuY2xlYXIoKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgeCA9IDA7CiAgICBmb3IoaW50IGkgPSAxOyBpIDwgY2hpbGRbdV0uc2l6ZSgpOyBpKyspCiAgICAgICAgaWYoc3pbY2hpbGRbdV1baV1dID4gc3pbY2hpbGRbdV1beF1dKQogICAgICAgICAgICB4ID0gaTsKICAgIGhsZChjaGlsZFt1XVt4XSk7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgY2hpbGRbdV0uc2l6ZSgpOyBpKyspCiAgICAgICAgaWYoaSAhPSB4KQogICAgICAgICAgICBobGQoY2hpbGRbdV1baV0pOwp9CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgY291dC50aWUoMCk7CiAgICByZWFkRGF0YSgpOwogICAgZGZzKDEpOwogICAgaGxkKDEpOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICAgICAgY291dCA8PCBhbnNbaV0gPDwgIlxuIjsKICAgIHJldHVybiAwOwp9Cg==