include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
using namespace std;
typedef pair[HTML_REMOVED] p;
const int N = 100010;
bool cmp(p a, p b)
{
if (a.first < b.first)
return true;
else if (a.first == b.first)
return a.second < b.second;
return false;
}
int main()
{
p w[N];
int n;
cin >> n;
for (int i = 0; i < n; i)
{
cin >> w[i].first >> w[i].second;
}
sort(w,w+n, cmp);
vector[HTML_REMOVED] m;
m.push_back(w[0]);
for (int i = 1; i < n; i)
{
if (w[i].first <= m.back().second) {
if (m.back().second < w[i].second)
m.back().second = w[i].second;
}
else m.push_back(w[i]);
}
int max1 = 0, max2 = 0;
for (int i = 0; i < m.size(); i) {
int h = m[i].second - m[i].first;
if (h > max1) max1 = h;
}
for (int i = 0; i < m.size()-1; i)
{
int t = m[i + 1].first - m[i].second;
if (t > max2) max2 = t;
}
cout << max1 << ” ” << max2 << endl;
return 0;
}