#include <bits/stdc++.h>
using namespace std;
long long POWER(long long a, long long p) {
  if (p == 0) return 1;
  long long b = a;
  for (int i = 1; i < p; i++) {
    b *= a;
  }
  return b;
}
long long GCD(long long a, long long b) {
  if (b) return GCD(b, a % b);
  return a;
}
long long LCM(long long F, long long G) {
  long long A = min(F, G), B = max(F, G), i = 1;
  while ((B * i) % A) i++;
  return B * i;
}
long long nop(long long a) {
  if (a % 2) {
    return a * ((a - 1) / 2);
  }
  return (a - 1) * (a / 2);
}
vector<int> ans;
unordered_map<int, vector<int> > m;
int j = 0;
unordered_map<int, int> v;
void sol(int l) {
  if (v[l]) return;
  v[l] = 1;
  ans[j++] = l;
  vector<int> u = m[l];
  for (int i = 0; i < u.size(); i++) {
    sol(u[i]);
  }
}
int main() {
  int n;
  scanf("%d", &n);
  ;
  for (int i = 0; i < n; i++) {
    int x, y;
    scanf("%d %d", &x, &y);
    ;
    m[x].push_back(y);
    m[y].push_back(x);
  }
  ans.resize(100009);
  int be;
  for (unordered_map<int, vector<int> >::iterator it = m.begin(); it != m.end();
       it++) {
    if (it->second.size() == 1) {
      be = it->first;
      break;
    }
  }
  sol(be);
  for (int i = 0; i < n + 1; i++) printf("%d ", ans[i]);
  return 0;
}
