#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,a[20010][3],ans;
int dx[2]={0,0};
int dy[2]={-1,1};
int vis[20010][20010];
bool check(){
for(int i=1;i<=n;i++){
for(int j=a[i][1];j<=a[i][2];j++){
if (vis[i][j]==0) return false;
}
}
return true;
}
bool checki(int i){
for(int j=a[i][1];j<=a[i][2];j++){
if (vis[i][j]==0) return false;
}
return true;
}
void dfs(int x,int y,int step){
if (check()==1){
if(x==n&&y==n){
if (step<ans) ans=step;
return ;
}
dfs(x+1,y,step+1);
}
if (checki(y)==1){
dfs(x,y+1,step+1);
}
for(int i=0;i<2;i++){
int newx=x+dx[i],newy=y+dy[i];
if (newx>=1&&newx<=n&&newy>=1&&newy<=n) dfs(newx,newy,step+1);
}
}
signed main(){
cin >> n;
for(int i=1;i<=n;i++){
cin >> a[i][1]>> a[i][2];
}
dfs(1,1,0);
cout << ans;
return 0;
}