#include <bits/stdc++.h>
using namespace std;
int main(void) {
  int n, max_len = 0, tmpl, tmpr;
  pair<int, int> fmaxl, fminr, smaxl(-1, -1), sminr(-1, -1);
  cin >> n >> tmpl >> tmpr;
  fmaxl = make_pair(tmpl, tmpr);
  fminr = make_pair(tmpl, tmpr);
  for (int i = 1; i < n; i++) {
    cin >> tmpl >> tmpr;
    if (tmpl >= fmaxl.first) {
      smaxl = fmaxl;
      fmaxl = make_pair(tmpl, tmpr);
    }
    if (tmpr <= fminr.second) {
      sminr = fminr;
      fminr = make_pair(tmpl, tmpr);
    }
    if (smaxl.first == -1 || (tmpl < fmaxl.first && tmpl > smaxl.first))
      smaxl = make_pair(tmpl, tmpr);
    if (sminr.first == -1 || (tmpr > fminr.second && tmpr < sminr.second))
      sminr = make_pair(tmpl, tmpr);
  }
  if (fmaxl == fminr && smaxl == sminr)
    cout << sminr.second - sminr.first;
  else if (fmaxl == fminr)
    cout << max((sminr.second - smaxl.first), (sminr.second - smaxl.first));
  else {
    max_len = max((fminr.second - smaxl.first), (sminr.second - fmaxl.first));
    max_len < 0 ? cout << 0 : cout << max_len;
  }
  return 0;
}
