#include <iostream>
#include <algorithm>
#define maxN 100000
using namespace std ;

struct Vendeg{
   int erk , tav ;
};

bool rend_rel ( const Vendeg a , const Vendeg b) {
   return a.tav<b.tav || a.tav==b.tav && a.erk<b.erk;
}
int main () {
   int n;
//beolvasás
   cin>>n;
   Vendeg V[n];
   for (int i=0; i<n; i ++){
      int erk,tav;
      cin>>erk>>tav ;
      V[i].erk=erk; V[i].tav=tav;
   }
// rendezés
   sort (V, V+n , rend_rel);
//mohó számítás
   int k=0;       // a megoldáshalmaz elemszáma
   int M[n];      // a megoldáshalmaz
   int utolso=0;  // az első szabad időopont
   for (int i=0; i<n; i ++)
      if (utolso<V[i].erk ) {
         utolso=V[i].tav-1;
         M[k++]=utolso;
      }
//kiíratás
   cout<<k<<endl ;
   for (int i=0; i<k; i++)
      cout<<M[i]<<" " ;
   cout<<endl ;

   return 0;
}
