func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, p;   vector<int> adj[100005];   vector<int> ans;   vector<int> vis;   int dfs(int s) {     if (s >= n) return 0;     vis[s] = 1;     int flag = 0;     for (int i = 0; i < adj[s].size(); i++) {       if (!vis[adj[s][i]]) {         flag = 1;         ans[s] += dfs(adj[s][i]);       }     }     if (!flag) {       ans[s] = 1;     }     return ans[s];   }   int main() {     cin >> n;     ans.resize(n, 0);     vis.resize(n, 0);     for (int i = 0; i < n - 1; i++) {       cin >> p;       adj[i + 1].push_back(p - 1);       adj[p - 1].push_back(i + 1);     }     dfs(0);     sort(ans.begin(), ans.end());     for (int i = 0; i < n; i++) {       cout << ans[i] <<    ;     }     cout << endl;     return 0;   }   