#include <bits/stdc++.h>
inline int getint() {
  int x = 0, p = 1;
  char c = getchar();
  while (c <= 32) c = getchar();
  if (c == 45) p = -p, c = getchar();
  while (c > 32) x = x * 10 + c - 48, c = getchar();
  return x * p;
}
using namespace std;
const int N = 2000;
vector<pair<int, int> > ans;
int X[4], Y[4], px, py;
inline int getdis(int xa, int ya, int xb, int yb) {
  return abs(xa - xb) + abs(ya - yb);
}
int main() {
  for (int(i) = 0; (i) < (3); (i)++) {
    X[i] = getint();
    Y[i] = getint();
  }
  int res = 1000000000;
  for (int(i) = 0; (i) < (N); (i)++)
    for (int(j) = 0; (j) < (N); (j)++) {
      int tmp = 0;
      for (int(k) = 0; (k) < (3); (k)++) tmp += getdis(i, j, X[k], Y[k]);
      if (tmp + 1 < res) {
        res = tmp + 1;
        px = i, py = j;
      }
    }
  for (int(i) = 0; (i) < (3); (i)++) {
    int sx = X[i], sy = Y[i];
    while (sx < px) ans.push_back(make_pair(sx, sy)), sx++;
    while (sx > px) ans.push_back(make_pair(sx, sy)), sx--;
    while (sy < py) ans.push_back(make_pair(sx, sy)), sy++;
    while (sy > py) ans.push_back(make_pair(sx, sy)), sy--;
  }
  printf("%d\n", res);
  for (int(i) = 0; (i) < (ans.size()); (i)++) {
    printf("%d %d\n", ans[i].first, ans[i].second);
  }
  cout << px << " " << py << endl;
  return 0;
}
