/** @param args */ public static void main(String[] args) { try { int N = StdIn.readInt(); indexArray = new int[N]; for (int i = 0; i < N; i++) { indexArray[i] = i; } UF uf = new WeightedQuickUnionUF(N); while (!StdIn.isEmpty()) { int p = StdIn.readInt(); if (p == -1) { p = StdIn.readInt(); int q = StdIn.readInt(); StdOut.print(p + " and " + q + " are"); if (!uf.connected(p, q)) { StdOut.print(" not"); } StdOut.println(" connected."); } else { int q = StdIn.readInt(); if (!uf.connected(p, q)) { uf.union(p, q); StdOut.println("connecting " + p + " " + q); } } printArray(indexArray); printArray(uf.idArray()); printArray(uf.sizeArray()); StdOut.println(); } } catch (InputMismatchException e) { System.exit(0); } }