#include<iostream>#include<cstdio>#include<cstring>usingnamespacestd;
int size = 0x3f3f3f3f, bal, siz[20005], n;
int tov[40004], nex[40004], h[20005], stot;
void add ( int u, int v ) {
tov[++stot] = v;
nex[stot] = h[u];
h[u] = stot;
}
void dfs ( int u, int f ) {
siz[u] = 0;
int res = 0;
for ( int i = h[u]; i; i = nex[i] ) {
int v = tov[i];
if ( v == f ) continue;
dfs ( v, u );
siz[u] += siz[v] + 1;
res = max ( res, siz[v] + 1 );
}
res = max ( res, n - siz[u] - 1 );
if ( res < size || res == size && u < bal ) size = res, bal = u;
}
int main ( ) {
int T;
scanf ( "%d", &T );
while ( T -- ) {
scanf ( "%d", &n );
memset ( h, 0, sizeof ( h ) );
stot = 0;
size = 0x3f3f3f3f;
for ( int i = 1; i < n; i ++ ) {
int a, b;
scanf ( "%d%d", &a, &b );
add ( a, b );
add ( b, a );
}
dfs ( 1, 1 );
printf ( "%d %d\n", bal, size );
}
}