#include <bits/stdc++.h>
using namespace std;
const int N = 2e2 + 5, M = 998244353, INF = 0x3f3f3f3f;
void Main();
bool fastio = 0;
void print() { cout << '\n'; }
template <typename T, typename... U>
void print(const T& x, const U&... y) {
  ((sizeof...(y) == 0) ? (cout << x) : (cout << x << ' '));
  print(y...);
}
template <typename T>
void print(const T& a, int l, int r, char c) {
  for (int i = l; i <= r; ++i) {
    cout << a[i];
    if (i == r)
      cout << '\n';
    else
      cout << c;
  }
}
void input() {}
template <typename T, typename... U>
void input(T& x, U&... y) {
  cin >> x;
  input(y...);
}
template <typename T>
void input(T& a, int l, int r, bool f) {
  for (int i = l; i <= r; ++i) cin >> a[i];
}
template <typename T>
void Max(T& a, T b) {
  a < b ? a = b : 1;
}
template <typename T>
void Min(T& a, T b) {
  a > b ? a = b : 1;
}
template <typename T>
void Add(T& a, T b) {
  a += b, a > M ? a -= M : 1;
}
int main(int argc, char** argv) {
  ios::sync_with_stdio(0), cin.tie(0);
  cout << setprecision(10) << fixed;
  Main();
}
set<int> s[N], t[N];
int ans[N];
void Main() {
  int T;
  input(T);
  while (T--) {
    int n;
    input(n);
    for (int i = 1; i < n; ++i) s[i].clear();
    for (int i = 1, k; i < n; ++i) {
      input(k);
      for (int j = 1, x; j <= k; ++j) input(x), s[i].insert(x);
    }
    for (int i = 1; i <= n; ++i) {
      for (int j = 1; j < n; ++j) t[j] = s[j];
      for (int j = 1; j < n; ++j)
        if (t[j].count(i)) t[j].erase(i);
      bool ok = true;
      ans[1] = i;
      for (int j = 2, x; j <= n; ++j) {
        int num = 0;
        for (int k = 1; k < n; ++k)
          if (t[k].size() == 1) {
            x = *t[k].begin();
            ++num;
          }
        if (num != 1) {
          ok = false;
          break;
        }
        ans[j] = x;
        for (int k = 1; k < n; ++k)
          if (t[k].count(x)) t[k].erase(x);
      }
      if (ok) {
        set<set<int>> ss(s + 1, s + n);
        for (int j = 2; j <= n; j++) {
          set<int> tmp;
          tmp.insert(ans[j]);
          bool flag = false;
          for (int k = j - 1; k >= 1; --k) {
            tmp.insert(ans[k]);
            if (ss.count(tmp)) {
              flag = true;
              break;
            }
          }
          if (!flag) ok = false;
        }
        if (ok) {
          print(ans, 1, n, ' ');
          break;
        }
      }
    }
  }
}
