#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e3 + 5;
struct node {
  int l, r;
} num[MAXN];
int cmp(node x, node y) { return x.r < y.r; }
int main() {
  int N;
  vector<int> v;
  v.clear();
  scanf("%d", &N);
  for (int i = 0; i < N; i++) {
    scanf("%d%d", &num[i].l, &num[i].r);
    if (num[i].r < num[i].l) {
      int temp = num[i].l;
      num[i].l = num[i].r;
      num[i].r = temp;
    }
  }
  sort(num, num + N, cmp);
  v.push_back(num[0].r);
  for (int i = 1; i < N; i++) {
    if (num[i].l > v.back()) {
      v.push_back(num[i].r);
    }
  }
  printf("%d\n", v.size());
  for (int i = 0; i < v.size(); i++) printf("%d ", v[i]);
  printf("\n");
  return 0;
}
