#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <climits>
#include <iomanip>
#include <vector>
using namespace std;
// P.Moriarty //
#define AAD ios_base::sync_with_stdio(0); cin.tie(nullptr); cout.tie(nullptr);
long long fac(int n)
{
long long fact = 1;
for (int i = 1;i <= n;i++)
{
fact *= i;
}
return fact;
}
long long per(int n, int j)
{
long long p = 1;
for (int i = n; i > n - j; i--)
{
p *= i;
}
return p;
}
bool lucky(int ch)
{
bool l = true;
while (ch > 0)
{
int d = ch % 10;
if (d == 7 || d == 4)
{
ch /= 10;
}
else
{
l = false;
break;
}
}
return l;
}
int pro(int x, int i)
{
int r = 1;
for (int j = 1;j <= i;j++)
{
r *= x;
}
return r;
}
bool prime(int x) {
if (x <= 1) return false;
if (x == 2 || x == 3) return true;
if (x % 2 == 0 || x % 3 == 0) return false;
for (int i = 5; i <= sqrt(x); i += 6) {
if (x % i == 0 || x % (i + 2) == 0) return false;
}
return true;
}
int f(string a, string b)
{
int c = 0;
for (int i = 0;i < a.size();i++)
{
if (a[i] == b[i])
c++;
}
return c;
}
int main()
{
AAD;
int n;
cin >> n;
vector<pair<long long, long long>> p(n);
for (int i = 0; i < n; i++) {
cin >> p[i].first >> p[i].second;
}
sort(p.begin(), p.end());
long long l = p[0].first, r = p[0].second;
vector<pair<long long, long long>> result;
for (int i = 1; i < n; i++)
{
if (l <= p[i].first && r >= p[i].first && r <= p[i].second)
{
r = p[i].second;
}
else
{
result.push_back(pair<long long, long long>(l, r));
l = p[i].first;
r = p[i].second;
}
}
for (int i = 0; i < result.size(); ++i) {
cout << result[i].first << " " << result[i].second << endl;
}
cout << l << " " << r << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxjbGltaXRzPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPHZlY3Rvcj4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8vIFAuTW9yaWFydHkgLy8KI2RlZmluZSBBQUQgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZShudWxscHRyKTsgY291dC50aWUobnVsbHB0cik7CmxvbmcgbG9uZyBmYWMoaW50IG4pCnsKCWxvbmcgbG9uZyBmYWN0ID0gMTsKCWZvciAoaW50IGkgPSAxO2kgPD0gbjtpKyspCgl7CgkJZmFjdCAqPSBpOwoJfQoJcmV0dXJuIGZhY3Q7Cn0KbG9uZyBsb25nIHBlcihpbnQgbiwgaW50IGopCnsKCWxvbmcgbG9uZyBwID0gMTsKCWZvciAoaW50IGkgPSBuOyBpID4gbiAtIGo7IGktLSkKCXsKCQlwICo9IGk7Cgl9CglyZXR1cm4gcDsKfQpib29sIGx1Y2t5KGludCBjaCkKewoJYm9vbCBsID0gdHJ1ZTsKCgl3aGlsZSAoY2ggPiAwKQoJewoJCWludCBkID0gY2ggJSAxMDsKCQlpZiAoZCA9PSA3IHx8IGQgPT0gNCkKCQl7CgkJCWNoIC89IDEwOwoJCX0KCQllbHNlCgkJewoJCQlsID0gZmFsc2U7CgkJCWJyZWFrOwoJCX0KCX0KCglyZXR1cm4gbDsKCn0KaW50IHBybyhpbnQgeCwgaW50IGkpCnsKCWludCByID0gMTsKCWZvciAoaW50IGogPSAxO2ogPD0gaTtqKyspCgl7CgkJciAqPSB4OwoJfQoJcmV0dXJuIHI7Cn0KCmJvb2wgcHJpbWUoaW50IHgpIHsKCWlmICh4IDw9IDEpIHJldHVybiBmYWxzZTsKCWlmICh4ID09IDIgfHwgeCA9PSAzKSByZXR1cm4gdHJ1ZTsKCWlmICh4ICUgMiA9PSAwIHx8IHggJSAzID09IDApIHJldHVybiBmYWxzZTsKCglmb3IgKGludCBpID0gNTsgaSA8PSBzcXJ0KHgpOyBpICs9IDYpIHsKCQlpZiAoeCAlIGkgPT0gMCB8fCB4ICUgKGkgKyAyKSA9PSAwKSByZXR1cm4gZmFsc2U7Cgl9CgoJcmV0dXJuIHRydWU7Cn0KCmludCBmKHN0cmluZyBhLCBzdHJpbmcgYikKewoJaW50IGMgPSAwOwoJZm9yIChpbnQgaSA9IDA7aSA8IGEuc2l6ZSgpO2krKykKCXsKCQlpZiAoYVtpXSA9PSBiW2ldKQoJCQljKys7Cgl9CglyZXR1cm4gYzsKfQoKaW50IG1haW4oKQp7CglBQUQ7CglpbnQgbjsKCWNpbiA+PiBuOwoKCXZlY3RvcjxwYWlyPGxvbmcgbG9uZywgbG9uZyBsb25nPj4gcChuKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJY2luID4+IHBbaV0uZmlyc3QgPj4gcFtpXS5zZWNvbmQ7Cgl9CgoJc29ydChwLmJlZ2luKCksIHAuZW5kKCkpOwoJbG9uZyBsb25nIGwgPSBwWzBdLmZpcnN0LCByID0gcFswXS5zZWNvbmQ7Cgl2ZWN0b3I8cGFpcjxsb25nIGxvbmcsIGxvbmcgbG9uZz4+IHJlc3VsdDsKCWZvciAoaW50IGkgPSAxOyBpIDwgbjsgaSsrKQoJewoJCWlmIChsIDw9IHBbaV0uZmlyc3QgJiYgciA+PSBwW2ldLmZpcnN0ICYmIHIgPD0gcFtpXS5zZWNvbmQpCgkJewoJCQlyID0gcFtpXS5zZWNvbmQ7CgkJfQoJCWVsc2UKCQl7CgkJCXJlc3VsdC5wdXNoX2JhY2socGFpcjxsb25nIGxvbmcsIGxvbmcgbG9uZz4obCwgcikpOwoJCQlsID0gcFtpXS5maXJzdDsKCQkJciA9IHBbaV0uc2Vjb25kOwoKCQl9CgoJfQoJZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHQuc2l6ZSgpOyArK2kpIHsKCQljb3V0IDw8IHJlc3VsdFtpXS5maXJzdCA8PCAiICIgPDwgcmVzdWx0W2ldLnNlY29uZCA8PCBlbmRsOwoJfQoJY291dCA8PCBsIDw8ICIgIiA8PCByIDw8IGVuZGw7Cgp9CgoKCgoK