#include <bits/stdc++.h>
using namespace std;
struct NODE {
  int l, r;
  bool v;
};
NODE a[200005];
void solve() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i < n + 1; i++) {
    scanf("%d%d", &a[i].l, &a[i].r);
    a[i].v = false;
  }
  printf("1 ");
  if (n == 3) {
    printf("2 3\n");
    return;
  }
  a[1].v = true;
  int aa = a[1].l, bb = a[1].r;
  a[aa].v = true;
  a[bb].v = true;
  int nxt;
  if (a[aa].l == bb || a[aa].r == bb) {
    nxt = aa;
    printf("%d %d ", aa, bb);
  } else {
    nxt = bb;
    printf("%d %d ", bb, aa);
  }
  while (true) {
    aa = a[nxt].l, bb = a[nxt].r;
    if (a[aa].v && a[bb].v) break;
    if (a[aa].v) {
      printf("%d ", bb);
      a[bb].v = true;
      nxt = aa;
    } else {
      printf("%d ", aa);
      a[aa].v = true;
      nxt = bb;
    }
  }
  printf("\n");
}
int main() {
  solve();
  return 0;
}
