// Author: Adrian Kuegel import java.util.*; class room_assignments { static ArrayList [] adj; static int [] id; static int dfs(int cur, int cid) { if (id[cur] > 0) return 0; id[cur] = cid; int ret = adj[cur].size() - 2; for (Iterator it = adj[cur].iterator(); it.hasNext(); ) { int k = ((Integer)it.next()).intValue(); ret += dfs(k, cid); } return ret; } public static void main(String [] args) throws Exception { Scanner in = new Scanner(System.in); int tc = in.nextInt(); while(tc-- > 0) { int n = in.nextInt(); adj = new ArrayList[n]; for (int i=0; i 0) continue; ++cid; if (dfs(i, cid) < 0) { if (critical_component > 0) impossible = true; critical_component = cid; } } if (impossible) System.out.println("impossible"); else { int a = 0, b = 0, bestA = 0, bestB = 0; if (cid > 1) { for (int i=0; i bestA) { bestA = v[i]; a = i; } for (int i=0; i bestA) { bestB = bestA; b = a; a = i; bestA = v[i]; } else if (v[i] > bestB) { bestB = v[i]; b = i; } } if (a > b) { int t = a; a = b; b = t; } System.out.println((a+1) + " " + (b+1)); } } } }