#include <bits/stdc++.h>
using namespace std;
int x[3], y[3];
bool cov[1005][1005];
vector<int> ans;
int mn = 1e9;
int G_ans() {
  int lp = 1e9;
  int tt = 0;
  int tx, ty;
  for (int i = min(x[1], x[2]); i <= max(x[1], x[2]); i++) {
    int rx = lp;
    lp = min(lp, abs(i - x[0]) + abs(y[1] - y[0]));
    if (lp < rx) tx = i, ty = y[1];
    tt++;
    cov[i][y[1]] = 1;
  }
  for (int i = min(y[1], y[2]); i <= max(y[1], y[2]); i++) {
    int rx = lp;
    lp = min(lp, abs(i - y[0]) + abs(x[2] - x[0]));
    if (lp < rx) tx = x[2], ty = i;
    tt++;
    cov[x[2]][i] = 1;
  }
  for (int i = min(tx, x[0]); i <= max(tx, x[0]); i++) {
    cov[i][ty] = 1;
  }
  for (int i = min(ty, y[0]); i <= max(ty, y[0]); i++) {
    cov[x[0]][i] = 1;
  }
  int ttl = 0;
  for (int i = 0; i <= 1000; i++) {
    for (int j = 0; j <= 1000; j++) {
      if (cov[i][j]) ttl++;
    }
  }
  return ttl;
}
int nx[3], ny[3];
int cx[3], cy[3];
int gx[3], gy[3];
void work(int a, int b, int c) {
  cx[0] = x[a], cy[0] = y[a];
  cx[1] = x[b], cy[1] = y[b];
  cx[2] = x[c], cy[2] = y[c];
  for (int i = 0; i < 3; i++) {
    gx[i] = x[i], gy[i] = y[i];
    x[i] = cx[i], y[i] = cy[i];
  }
  int t = G_ans();
  for (int i = 0; i < 3; i++) {
    x[i] = gx[i];
    y[i] = gy[i];
  }
  if (t < mn) {
    mn = t;
    for (int i = 0; i < 3; i++) nx[i] = cx[i], ny[i] = cy[i];
  }
  memset(cov, 0, sizeof(cov));
}
int main() {
  cin >> x[0] >> y[0] >> x[1] >> y[1] >> x[2] >> y[2];
  work(0, 1, 2);
  work(0, 2, 1);
  work(1, 0, 2);
  work(1, 2, 0);
  work(2, 0, 1);
  work(2, 1, 0);
  for (int i = 0; i < 3; i++) x[i] = nx[i], y[i] = ny[i];
  printf("%d\n", G_ans());
  for (int i = 0; i <= 1000; i++) {
    for (int j = 0; j <= 1000; j++) {
      if (cov[i][j]) printf("%d %d\n", i, j);
    }
  }
  return 0;
}
