#include <iostream>
#include <map>
int main()
{
using namespace std;
multimap<int, bool> ranges;
for (int start, end; cin >> start && cin >> end;)
{
ranges.emplace(start, true);
ranges.emplace(end, false);
}
int start, end, max = 0, current = 0;
bool closing = false;
for (auto value : ranges)
{
current += value.second ? 1 : -1;
if (current > max)
{
start = value.first;
max = current;
closing = true;
}
if (closing && !value.second)
{
closing = false;
end = value.first;
}
}
cout << max << " (" << start << " -> " << end << ")\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgoKaW50IG1haW4oKQp7CiAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOwoKICAgIG11bHRpbWFwPGludCwgYm9vbD4gcmFuZ2VzOwoKICAgIGZvciAoaW50IHN0YXJ0LCBlbmQ7IGNpbiA+PiBzdGFydCAmJiBjaW4gPj4gZW5kOykKICAgIHsKICAgICAgICByYW5nZXMuZW1wbGFjZShzdGFydCwgdHJ1ZSk7CiAgICAgICAgcmFuZ2VzLmVtcGxhY2UoZW5kLCBmYWxzZSk7CiAgICB9CgogICAgaW50IHN0YXJ0LCBlbmQsIG1heCA9IDAsIGN1cnJlbnQgPSAwOwogICAgYm9vbCBjbG9zaW5nID0gZmFsc2U7CgogICAgZm9yIChhdXRvIHZhbHVlIDogcmFuZ2VzKQogICAgewogICAgICAgIGN1cnJlbnQgKz0gdmFsdWUuc2Vjb25kID8gMSA6IC0xOwoKICAgICAgICBpZiAoY3VycmVudCA+IG1heCkKICAgICAgICB7CiAgICAgICAgICAgIHN0YXJ0ID0gdmFsdWUuZmlyc3Q7CiAgICAgICAgICAgIG1heCA9IGN1cnJlbnQ7CiAgICAgICAgICAgIGNsb3NpbmcgPSB0cnVlOwogICAgICAgIH0KCiAgICAgICAgaWYgKGNsb3NpbmcgJiYgIXZhbHVlLnNlY29uZCkKICAgICAgICB7CiAgICAgICAgICAgIGNsb3NpbmcgPSBmYWxzZTsKICAgICAgICAgICAgZW5kID0gdmFsdWUuZmlyc3Q7CiAgICAgICAgfQogICAgfQoKICAgIGNvdXQgPDwgbWF4IDw8ICIgKCIgPDwgc3RhcnQgPDwgIiAtPiAiIDw8IGVuZCA8PCAiKVxuIjsKfQ==