#include <bits/stdc++.h>
using namespace std;

const int inf=1000000005;

int main(){
	//cin.tie(0);
	//ios::sync_with_stdio(0);
	//cout<<fixed<<setprecision(20);

	int n;cin>>n;
	vector<pair<int ,int> >  lr;
	int mx=-inf,mn=inf;
	for(int i=0;i<n;i++){
		int l,r;cin>>l>>r;
		l--;
		mx=max(mx,l);
		mn=min(mn,r);
		lr.emplace_back(l,r);
	}

	int ans=0;
	for(auto z:lr){
		ans=max(ans,max(int(0),mn-mx)+z.second-z.first);
	}
	vector<pair<int,int> > t;
	for(int i=0;i<n;i++){
		int a=max(int(0),mn-lr[i].first);
		int b=max(int(0),lr[i].second-mx);
		t.emplace_back(b,-a);
	}
	sort(t.begin(),t.end());
	int w=inf;
	for(int i=0;i<n;i++){
		auto z=t[i];
		z.second=-z.second;
		if(i)
			ans=max(ans,w+z.first);
		w=min(w,z.second);
	}
	cout<<ans<<endl;
}
