func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 205;   int n, siz[N], s[N][N], ori[N][N], tot[N], pos[N];   vector<int> ans;   int read() {     int x = 0, f = 1;     char s;     while ((s = getchar()) >  9  || s <  0 )       if (s ==  - ) f = -1;     while (s >=  0  && s <=  9 )       x = (x << 1) + (x << 3) + (s ^ 48), s = getchar();     return x * f;   }   bool ok() {     for (int i = 1; i <= n; ++i)       if (tot[i]) return 0;     return 1;   }   bool check() {     int maxx;     for (int i = 1; i <= n; ++i) pos[ans[n - i]] = i;     for (int i = 1; i < n; ++i) {       maxx = 0;       for (int j = 1; j <= n; ++j) tot[j] = 0;       for (int j = 1; j <= siz[i]; ++j)         maxx = max(maxx, pos[ori[i][j]]), ++tot[ori[i][j]];       if (maxx - siz[i] + 1 < 1) return 0;       for (int j = maxx; j >= maxx - siz[i] + 1; --j)         if (!tot[ans[n - j]]) return 0;     }     return 1;   }   int main() {     int x, sum;     bool flag;     for (int T = read(); T; --T) {       n = read();       for (int i = 1; i < n; ++i) {         siz[i] = read();         for (int j = 1; j <= siz[i]; ++j) ori[i][j] = read();       }       for (int num = 1; num <= n; ++num) {         ans.clear();         flag = 0;         for (int i = 1; i < n; ++i) {           for (int j = 1; j <= siz[i]; ++j) {             s[i][j] = ori[i][j];             if (s[i][j] == num) s[i][j] = 0;           }         }         while (233) {           sum = 0;           for (int i = 0; i <= n; ++i) tot[i] = 0;           for (int i = 1; i < n; ++i)             for (int j = 1; j <= siz[i]; ++j) ++tot[s[i][j]];           for (int i = 1; i <= n; ++i)             if (tot[i] == 1) ++sum, x = i;           if (ok()) break;           if (sum != 1) {             flag = 1;             break;           }           ans.push_back(x);           bool f;           for (int i = 1; i < n; ++i) {             f = 0;             for (int j = 1; j <= siz[i]; ++j)               if (s[i][j] == x) {                 f = 1;                 break;               }             if (f)               for (int j = 1; j <= siz[i]; ++j) s[i][j] = 0;           }         }         if (!flag) {           ans.push_back(num);           if (check()) break;         }       }       for (int i = ans.size() - 1; ~i; --i) printf( %d  , ans[i]);       puts(  );     }     return 0;   }   