#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll INF = 1e18 + 1;
const ll mod = 1e9 + 7;
vector<vector<ll> > adj;
vector<ll> desc, max_n;
ll gmnc = INF;
void print_vec(vector<ll> vec) {
  for (int i = 0; i < vec.size(); ++i) {
    cout << vec[i] << " ";
  }
  cout << endl;
}
ll desc_cnt(ll curr, ll par) {
  ll cnt = 1;
  for (auto it : adj[curr]) {
    if (it != par) {
      cnt += desc_cnt(it, curr);
    }
  }
  desc[curr] = cnt;
  return cnt;
}
void max_neigh_cnt(ll curr, ll par) {
  ll mnc = -INF;
  mnc = max(mnc, desc[1] - desc[curr]);
  for (auto it : adj[curr]) {
    if (it != par) {
      mnc = max(mnc, desc[it]);
    }
  }
  gmnc = min(gmnc, mnc);
  max_n[curr] = mnc;
  for (auto it : adj[curr]) {
    if (it != par) {
      max_neigh_cnt(it, curr);
    }
  }
}
int main() {
  cin.tie(0);
  ios_base::sync_with_stdio(0);
  ll t;
  cin >> t;
  while (t--) {
    ll n;
    cin >> n;
    adj.clear();
    desc.clear();
    max_n.clear();
    gmnc = INF;
    adj.resize(n + 1);
    desc.resize(n + 1);
    max_n.resize(n + 1);
    for (int i = 1; i <= n - 1; ++i) {
      ll x, y;
      cin >> x >> y;
      adj[x].push_back(y);
      adj[y].push_back(x);
    }
    desc_cnt(1, 1);
    max_neigh_cnt(1, 1);
    vector<ll> cn;
    for (int i = 1; i <= n; ++i) {
      if (max_n[i] == gmnc) {
        cn.push_back(i);
      }
    }
    pair<ll, ll> e1, e2;
    if (cn.size() > 1) {
      for (auto it : adj[cn[0]]) {
        if (it != cn[1]) {
          e1 = make_pair(cn[0], it);
          e2 = make_pair(cn[1], it);
          break;
        }
      }
    } else {
      e1 = make_pair(cn[0], adj[cn[0]][0]);
      e2 = e1;
    }
    cout << e1.first << " " << e1.second << endl;
    cout << e2.first << " " << e2.second << endl;
  }
}
