#include <bits/stdc++.h>
using namespace std;
const double pi = 2 * acos(0.0);
pair<int, int> A[100001];
set<pair<int, int> > uns;
set<pair<int, int> >::iterator it;
int n, i, j;
void go(int l, int r) {
  int i, t;
  if (l != r) {
    t = (l + r) / 2;
    for (i = l; i <= r; i++) uns.insert(make_pair(A[t].first, A[i].second));
    go(l, t);
    go(t + 1, r);
  }
}
int main() {
  cin >> n;
  uns.clear();
  for (i = 0; i <= n - 1; i++) {
    cin >> A[i].first >> A[i].second;
    uns.insert(make_pair(A[i].first, A[i].second));
  }
  sort(A, A + n);
  go(0, n - 1);
  cout << (int)uns.size() << endl;
  for (it = uns.begin(); it != uns.end(); it++) {
    int o1, o2;
    o1 = it->first;
    o2 = it->second;
    printf("%d %d\n", o1, o2);
  }
}
