#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e6 + 7;
priority_queue<int, vector<int>, greater<int> > q;
struct node {
  int x, y;
  bool operator<(const node& A) const { return x == A.x ? y < A.y : x < A.x; }
};
set<node> s;
int main() {
  node b;
  node a[5];
  for (int i = 01; i <= 3; i++) {
    cin >> a[i].x >> a[i].y;
  }
  sort(a + 1, a + 4);
  for (int i = a[1].x; i <= a[2].x; i++) {
    b.x = i;
    b.y = a[1].y;
    s.insert(b);
  }
  for (int j = min(a[1].y, a[2].y); j <= max(a[1].y, a[2].y); j++) {
    b.x = a[2].x;
    b.y = j;
    s.insert(b);
  }
  for (int j = a[2].x; j <= a[3].x; j++) {
    b.x = j;
    b.y = a[3].y;
    s.insert(b);
  }
  for (int j = min(a[2].y, a[3].y); j <= max(a[3].y, a[2].y); j++) {
    b.x = a[2].x;
    b.y = j;
    s.insert(b);
  }
  cout << s.size() << endl;
  for (auto it = s.begin(); it != s.end(); it++) {
    cout << (*it).x << " " << (*it).y << endl;
  }
  return 0;
}
