RT
#include<bits/stdc++.h>
using namespace std;
int n;
int dp[150005],maxright;
struct line{
int left,right;
}a[150005];
vector<int> ve[3000005];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].left>>a[i].right;
a[i].left++,a[i].right++;
maxright=max(maxright,a[i].right);
ve[a[i].right].push_back(a[i].left);
}
for(int i=1;i<=maxright;i++){
dp[i]=dp[i-1];
for(int j=0;j<ve[i].size();j++){
dp[i]=max(dp[i],dp[ve[i][j]-1]+(i-ve[i][j]+1));
}
//cout<<dp[i]<<" ";
}
cout<<dp[maxright];
return 0;
}