#include <bits/stdc++.h>
using namespace std;
int T, N, rt, rrt, size[int(1e6 + 5)], fa[int(1e6 + 5)], F[int(1e6 + 5)];
int tot, hd[int(1e6 + 5)], ver[int(1e6 + 5)], nt[int(1e6 + 5)];
inline void addedge(int x, int y) {
  ++tot;
  nt[tot] = hd[x];
  ver[tot] = y;
  hd[x] = tot;
}
inline void read(int &x) {
  x = 0;
  bool f = 0;
  char ch = getchar();
  for (; !(ch >= '0' && ch <= '9'); ch = getchar()) f |= ch == '-';
  for (; (ch >= '0' && ch <= '9'); ch = getchar())
    x = (x << 3) + (x << 1) + (ch ^ 48);
  x = f ? -x : x;
}
inline void dfs(int x) {
  size[x] = 1;
  for (int i = hd[x]; i; i = nt[i]) {
    int y = ver[i];
    if (y == fa[x]) continue;
    fa[y] = x;
    dfs(y);
    size[x] += size[y];
    F[x] = ((F[x]) > (size[y]) ? (F[x]) : (size[y]));
  }
  F[x] = ((F[x]) > (N - size[x]) ? (F[x]) : (N - size[x]));
  if (F[x] < F[rt])
    rt = x, rrt = 0;
  else if (F[x] == F[rt])
    rrt = x;
}
int DFS(int x) {
  for (int i = hd[x]; i; i = nt[i]) {
    if (ver[i] == fa[x]) continue;
    return DFS(ver[i]);
  }
  return x;
}
int main() {
  read(T);
  F[0] = 1e9;
  while (T--) {
    read(N);
    rt = rrt = 0;
    for (int i = 1; i <= tot; ++i) hd[i] = nt[i] = ver[i] = 0;
    tot = 0;
    for (int i = 1; i <= N; ++i) fa[i] = 0, F[i] = 0;
    for (int i = 1; i < N; ++i) {
      int x, y;
      read(x);
      read(y);
      addedge(x, y);
      addedge(y, x);
    }
    int x, y;
    dfs(1);
    if (rrt == 0) {
      for (int i = hd[rt]; i; i = nt[i]) {
        x = ver[i];
      }
      printf("%d %d\n", rt, x);
      printf("%d %d\n", x, rt);
      continue;
    }
    if (fa[rt] == rrt) swap(rt, rrt);
    for (int i = hd[rrt]; i; i = nt[i]) {
      if (ver[i] != rt) {
        x = ver[i];
        break;
      }
    }
    printf("%d %d\n", rrt, x);
    x = DFS(x);
    printf("%d %d\n", rt, x);
  }
  return 0;
}
