#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
vector<long long> g[100005];
long long vis[MAXN], s[MAXN], gc[MAXN];
long long n;
void dfs(long long v) {
  vis[v] = 1;
  s[v] = 1;
  for (auto i : g[v]) {
    if (!vis[i]) {
      dfs(i);
      s[v] += s[i];
      gc[v] = max(gc[v], s[i]);
    }
  }
  gc[v] = max(gc[v], n - s[v]);
}
int pa[MAXN], sz[MAXN];
long long find_pa(long long pos) {
  if (pa[pos] != pos) pa[pos] = find_pa(pa[pos]);
  return pa[pos];
}
void join(int a, int b) {
  int x = find_pa(a), y = find_pa(b);
  if (x != y) {
    if (sz[x] >= sz[y])
      sz[x] += sz[y], pa[y] = x;
    else
      sz[y] += sz[x], pa[x] = y;
  }
}
void dsu_init(long long n) {
  for (long long i = 0, ggdem = n; i < ggdem; ++i) pa[i] = i, sz[i] = 1;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long t;
  cin >> t;
  while (t--) {
    cin >> n;
    for (long long i = 0, ggdem = n - 1; i < ggdem; ++i) {
      long long u, v;
      cin >> u >> v;
      u--;
      v--;
      g[u].push_back(v);
      g[v].push_back(u);
    }
    dfs(0);
    long long mini = n;
    for (long long i = 0, ggdem = n; i < ggdem; ++i) {
      mini = min(mini, gc[i]);
    }
    vector<long long> v;
    for (long long i = 0, ggdem = n; i < ggdem; ++i) {
      if (gc[i] == mini) v.push_back(i);
    }
    assert(((int)v.size()) <= 2);
    sort(v.begin(), v.end());
    if (((int)v.size()) == 1) {
      for (long long k = 0, ggdem = 2; k < ggdem; ++k)
        cout << 1 << " " << g[0][0] + 1 << "\n";
    } else {
      assert(mini == n / 2 && n % 2 == 0);
      dsu_init(n);
      for (long long i = 0, ggdem = n; i < ggdem; ++i) {
        for (auto j : g[i]) {
          if (min(i, j) != v[0] || max(i, j) != v[1]) {
            join(i, j);
          }
        }
      }
      long long br = 0;
      for (long long i = 0, ggdem = n; i < ggdem; ++i) {
        if (((int)g[i].size()) == 1 && i != v[0] &&
            find_pa(i) != find_pa(v[1])) {
          cout << i + 1 << " " << g[i][0] + 1 << "\n";
          cout << i + 1 << " " << v[1] + 1 << "\n";
          br++;
          break;
        }
      }
      assert(br);
    }
    for (long long i = 0, ggdem = n; i < ggdem; ++i) g[i].clear();
    for (long long i = 0, ggdem = n; i < ggdem; ++i)
      vis[i] = 0, s[i] = 0, gc[i] = 0;
  }
  return 0;
}
