#include <bits/stdc++.h>
using namespace std;
void ga(int N, int *A) {
  for (int i(0); i < N; i++) scanf("%d", A + i);
}
set<pair<int, int> > S;
int N, x, y;
pair<int, int> A[100005];
void rec(int b, int e) {
  if (b >= e) return;
  int M = (e + b) / 2;
  for (int k(b); k < e + 1; k++) S.insert({A[M].first, A[k].second});
  rec(b, M - 1), rec(M + 1, e);
}
int main(void) {
  scanf("%d", &N);
  for (int i(0); i < N; i++)
    scanf("%d%d", &x, &y), A[i] = {x, y}, S.insert({x, y});
  sort(A, A + N), rec(0, N - 1);
  printf("%lu\n", S.size());
  for (auto &h : S) printf("%d %d\n", h.first, h.second);
  return 0;
}
