#include <bits/stdc++.h>
using namespace std;
long long int i, j, n;
long long int mxu[3 * 100005], mxd[3 * 100005], mnu[3 * 100005],
    mnd[3 * 100005];
long long int a[3 * 100005], b[3 * 100005];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  for (i = 0; i <= n + 1; i++) {
    mnu[i] = 1e18;
    mnd[i] = 1e18;
  }
  for (i = 1; i <= n; i++) {
    cin >> a[i] >> b[i];
    mxu[i] = max(mxu[i - 1], a[i]);
    mnu[i] = min(mnu[i - 1], b[i]);
  }
  for (i = n; i >= 1; i--) {
    mxd[i] = max(mxd[i + 1], a[i]);
    mnd[i] = min(mnd[i + 1], b[i]);
  }
  long long int ans = 0;
  for (i = 1; i <= n; i++) {
    long long int l = max(mxu[i - 1], mxd[i + 1]);
    long long int r = min(mnu[i - 1], mnd[i + 1]);
    ans = max(ans, r - l);
  }
  cout << ans << endl;
  return 0;
}
