#include <bits/stdc++.h>
using namespace std;
size_t n, k;
pair<int, int> c;
map<int, set<size_t> > l, r;
set<int> s;
set<size_t> m;
set<size_t> u;
set<int> ans;
int ar[1010];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.precision(11);
  cout.setf(ios::fixed);
  srand((uint32_t)time(nullptr));
  k = 0;
  cin >> n;
  for (size_t i = 0; i < n; ++i) {
    cin >> c.first >> c.second;
    l[min(c.first, c.second)].insert(i + 1);
    r[max(c.first, c.second)].insert(i + 1);
    ar[i + 1] = max(c.first, c.second);
    s.insert(c.first);
    s.insert(c.second);
  }
  for (int i : s) {
    auto il = l.find(i);
    auto ir = r.find(i);
    if (il != l.end()) {
      for (auto j : il->second) {
        if (!u.count(j)) {
          m.insert(j);
        }
      }
    }
    if (ir != r.end() && m.size()) {
      k++;
      for (auto j : m) {
        u.insert(j);
        auto it = r.find(ar[j]);
        if (it != r.end() && it->second.size() == 1 &&
            (*it->second.begin()) == j) {
          r.erase(it);
        } else if (it != r.end()) {
          it->second.erase(j);
        }
      }
      m.clear();
      ans.insert(i);
    }
  }
  cout << k << endl;
  for (int i : ans) {
    cout << i << ' ';
  }
  return 0;
}
