#include <bits/stdc++.h>
using namespace std;
int n;
pair<int, int> a[10005];
set<pair<int, int> > s;
void solve(int l, int r) {
  if (l >= r) return;
  int mid = (l + r) / 2;
  int midx = a[mid].first;
  for (int i = l; i <= r; i++) s.insert((pair<int, int>){midx, a[i].second});
  solve(l, mid);
  solve(mid + 1, r);
  return;
}
int main() {
  scanf("%d", &n);
  s.clear();
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &a[i].first, &a[i].second);
    s.insert(a[i]);
  }
  sort(a, a + n);
  solve(0, n - 1);
  printf("%d\n", s.size());
  for (auto i = s.begin(); i != s.end(); i++)
    printf("%d %d\n", (*i).first, (*i).second);
  return 0;
}
