#include <bits/stdc++.h>
using namespace std;
const int consta = 1001;
struct AA {
  int x, y;
  AA(int x_, int y_) {
    x = x_;
    y = y_;
  }
};
int main() {
  int a, bi, c, d, e, f;
  cin >> a >> bi >> c >> d >> e >> f;
  AA A(a, bi), B(c, d), C(e, f);
  int minans = 1000000;
  for (int i = 0; i <= 1000; ++i) {
    for (int j = 0; j <= 1000; ++j) {
      int c_min = abs(A.x - i) + abs(A.y - j) + abs(C.x - i) + abs(C.y - j) +
                  abs(i - B.x) + abs(j - B.y);
      if (minans > c_min) {
        minans = c_min;
        a = i;
        bi = j;
      }
    }
  }
  int ans = 3;
  bitset<consta> b[1001];
  for (int i = 0; i < 1001; ++i) b[i].reset();
  b[A.x][A.y] = 1;
  b[B.x][B.y] = 1;
  b[C.x][C.y] = 1;
  while (A.x > a) {
    A.x--;
    if (!b[A.x][A.y]) ans++;
    b[A.x][A.y] = 1;
  }
  while (A.x < a) {
    A.x++;
    if (!b[A.x][A.y]) ans++;
    b[A.x][A.y] = 1;
  }
  while (A.y > bi) {
    A.y--;
    if (!b[A.x][A.y]) ans++;
    b[A.x][A.y] = 1;
  }
  while (A.y < bi) {
    A.y++;
    if (!b[A.x][A.y]) ans++;
    b[A.x][A.y] = 1;
  }
  while (B.x > a) {
    B.x--;
    if (!b[B.x][B.y]) ans++;
    b[B.x][B.y] = 1;
  }
  while (B.x < a) {
    B.x++;
    if (!b[B.x][B.y]) ans++;
    b[B.x][B.y] = 1;
  }
  while (B.y > bi) {
    B.y--;
    if (!b[B.x][B.y]) ans++;
    b[B.x][B.y] = 1;
  }
  while (B.y < bi) {
    B.y++;
    if (!b[B.x][B.y]) ans++;
    b[B.x][B.y] = 1;
  }
  while (C.x > a) {
    C.x--;
    if (!b[C.x][C.y]) ans++;
    b[C.x][C.y] = 1;
  }
  while (C.x < a) {
    C.x++;
    if (!b[C.x][C.y]) ans++;
    b[C.x][C.y] = 1;
  }
  while (C.y > bi) {
    C.y--;
    if (!b[C.x][C.y]) ans++;
    b[C.x][C.y] = 1;
  }
  while (C.y < bi) {
    C.y++;
    if (!b[C.x][C.y]) ans++;
    b[C.x][C.y] = 1;
  }
  cout << ans << endl;
  for (int a = 0; a < 1001; ++a) {
    for (int bi = 0; bi < 1001; ++bi) {
      if (b[a][bi]) cout << a << " " << bi << endl;
    }
  }
  return 0;
}
