#include<iostream>
#include<vector>
using namespace std;
struct compi{
int a;
int b;
};
int did(int n,vector<compi> h,vector<bool> u){
if(n==0){
return 0;
}
int p=did(n-1,h,u);
bool can=1;
for(int i=h[n-1].a;i<=h[n-1].b;i++){
if(!u[i]){
can=0;
break;
}
}
if(can){
for(int i=h[n-1].a;i<=h[n-1].b;i++){
u[i]=1;
}
int q=did(n-1,h,u);
for(int i=h[n-1].a;i<=h[n-1].b;i++){
u[i]=0;
}
if(q>p){
p=q;
}
}
return p;
}
int main(){
int n;
vector<compi> x;
cin>>n;
x.resize(n);
int maxb=0;
for(int i=0;i<n;i++){
cin>>x[i].a>>x[i].b;
if(x[i].b>maxb){
maxb=x[i].b;
}
}
vector<bool> u;
u.resize(maxb+2);
cout<<did(n,x,u)<<endl;
return 0;
}