#include <bits/stdc++.h>
using namespace std;
bool cmp(const pair<int, int>& a, const pair<int, int>& b) {
if(a.first != b.first)
return a.first < b.first;
return a.second > b.second;
}
int main() {
ios_base::sync_with_stdio(false), cin.tie(0);
int n, a, b;
set<pair<int, int>, decltype(cmp)*> S(cmp);
cin >> n;
while(n--) {
cin >> a >> b;
S.insert({b, a});
}
int ans = 0;
while(!S.empty()) {
auto it = S.begin();
while(it != S.end()) {
cout << it -> first << ' ' << it -> second << '\n';
auto nxtIt = S.lower_bound({it -> first + 1, it -> second});
S.erase(it);
it = nxtIt;
}
ans++;
}
cout << ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGNtcChjb25zdCBwYWlyPGludCwgaW50PiYgYSwgY29uc3QgcGFpcjxpbnQsIGludD4mIGIpIHsKCWlmKGEuZmlyc3QgIT0gYi5maXJzdCkKCQlyZXR1cm4gYS5maXJzdCA8IGIuZmlyc3Q7CgkJCglyZXR1cm4gYS5zZWNvbmQgPiBiLnNlY29uZDsKfQoKaW50IG1haW4oKSB7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKSwgY2luLnRpZSgwKTsKCglpbnQgbiwgYSwgYjsKCXNldDxwYWlyPGludCwgaW50PiwgZGVjbHR5cGUoY21wKSo+IFMoY21wKTsKCQoJY2luID4+IG47Cgl3aGlsZShuLS0pIHsKCQljaW4gPj4gYSA+PiBiOwoJCQoJCVMuaW5zZXJ0KHtiLCBhfSk7Cgl9CgkKCWludCBhbnMgPSAwOwoJCgl3aGlsZSghUy5lbXB0eSgpKSB7CgkJYXV0byBpdCA9IFMuYmVnaW4oKTsKCQkKCQl3aGlsZShpdCAhPSBTLmVuZCgpKSB7CgkJCWNvdXQgPDwgaXQgLT4gZmlyc3QgPDwgJyAnIDw8IGl0IC0+IHNlY29uZCA8PCAnXG4nOwoJCQkKCQkJYXV0byBueHRJdCA9IFMubG93ZXJfYm91bmQoe2l0IC0+IGZpcnN0ICsgMSwgaXQgLT4gc2Vjb25kfSk7CgkJCQoJCQlTLmVyYXNlKGl0KTsKCQkJaXQgPSBueHRJdDsKCQl9CgkJCgkJYW5zKys7Cgl9CgkKCWNvdXQgPDwgYW5zOwp9