#include <bits/stdc++.h>
using namespace std;
const int N = 15;
const int inf = 1000 * 1000 * 1000;
const int mod = 1000 * 1000 * 1000 + 7;
pair<int, int> p[N];
int n = 3;
set<pair<int, int> > q;
set<pair<int, int> >::iterator it;
int main() {
  for (int i = 1; i <= n; i++) {
    scanf("%d%d", &p[i].first, &p[i].second);
  }
  sort(p + 1, p + n + 1);
  while (p[1].first != p[2].first) {
    q.insert(p[1]);
    p[1].first++;
  }
  int l = min(p[1].second, p[2].second);
  int r = max(p[1].second, p[2].second);
  for (int i = l; i <= r; i++) {
    q.insert(make_pair(p[1].first, i));
  }
  if (p[3].second >= l && p[3].second <= r) {
    for (int i = p[1].first; i <= p[3].first; i++) {
      q.insert(make_pair(i, p[3].second));
    }
  } else {
    int id, k;
    if (p[3].second > r)
      k = r;
    else
      k = l;
    if (p[1].second == k)
      id = 1;
    else
      id = 2;
    for (int i = min(p[id].first, p[3].first);
         i <= max(p[id].first, p[3].first); i++) {
      q.insert(make_pair(i, p[id].second));
    }
    for (int i = min(p[id].second, p[3].second);
         i <= max(p[id].second, p[3].second); i++) {
      q.insert(make_pair(p[3].first, i));
    }
  }
  cout << (int)q.size() << endl;
  for (it = q.begin(); it != q.end(); ++it) {
    cout << (*it).first << " " << (*it).second << endl;
  }
  return 0;
}
