#include #include #include using namespace std; const int MAX = 10000*10000+1; int parent[MAX]; int child[MAX][2]; vector ans1; vector ans2; vector ans3; void dfs1(int root){ ans1.push_back(root); if(child[root][0]) dfs1(child[root][0]); if(child[root][1]) dfs1(child[root][1]); } void dfs2(int root){ if(child[root][0]) dfs2(child[root][0]); if(child[root][1]) dfs2(child[root][1]); ans2.push_back(root); } void dfs3(int root){ if(child[root][0]) dfs3(child[root][0]); ans3.push_back(root); if(child[root][1]) dfs3(child[root][1]); } int main(){ int n; cin>>n; cin>>parent[1]; for(int i=2;i<=n;i++){ cin>>parent[i]; if(!child[parent[i]][0]) child[parent[i]][0]=i; else child[parent[i]][1]=i; } /// peymaesh pish tartEEEb dfs1(1); for(int i=0;i