func_code_string: #include <bits/stdc++.h>   using namespace std;   int n;   vector<vector<int> > G;   vector<vector<int> > ID;   vector<vector<int> > ans;   void addp(int id, int t) {     while (ans.size() <= t) ans.push_back(vector<int>());     ans[t].push_back(id);   }   void solve(int from, int lab, int v) {     int ctr = 0;     for (int i = 0; i < G[v].size(); ++i) {       if (ctr == lab) ++ctr;       if (G[v][i] == from) continue;       addp(ID[v][i], ctr);       solve(v, ctr++, G[v][i]);     }   }   int main() {     ios::sync_with_stdio(0);     cin >> n;     G = vector<vector<int> >(n, vector<int>());     ID = vector<vector<int> >(n, vector<int>());     for (int i = 1; i < n; ++i) {       int a, b;       cin >> a >> b;       G[--a].push_back(--b);       G[b].push_back(a);       ID[a].push_back(i);       ID[b].push_back(i);     }     solve(-1, -1, 0);     cout << ans.size() <<   n ;     for (int i = 0; i < ans.size(); ++i) {       cout << ans[i].size();       for (int j = 0; j < ans[i].size(); ++j) cout <<     << ans[i][j];       cout <<   n ;     }     return 0;   }   