/* Resolução do problema da conexidade com o quick-find. */

#include <stdio.h>
#define N 100000

main() {
  int i, p, q, t, id[N];

  /* Inicialmente cada elemento forma um conjunto unitário. */
  for (i=0; i < N; i++) id[i] = i;

  while (scanf("%d %d", &p, &q) == 2) {
    /* se os elementos do par estão em conjuntos diferentes, 
       imprime o par e faz a união dos dois conjuntos. */
    if (id[p] != id[q]) {
      /* faz a união dos conjuntos contendo p e q */
      t = id[q];
      for (i=0; i < N; i++)
	if (id[i] == t) id[i] = id[p];
      printf("      %d %d\n", p, q);
    }
  }
}
