#include <bits/stdc++.h>
#pragma G++ optimize "O2"
#pragma GCC optimize "O2"
#pragma G++ optimize "O3"
#pragma GCC optimize "O3"
#pragma G++ optimize "Ofast"
#pragma GCC optimize "Ofast"
using namespace std;
const int maxn = 1010;
int G[maxn][maxn];
struct Point {
  int x, y;
} P[4];
Point center;
bool operator<(const Point &a, const Point &b) {
  if (a.x == b.x) return a.y < b.y;
  return a.x < b.x;
}
void ModifyReact(Point a, Point b) {
  for (register int i = min(a.x, b.x); i <= max(a.x, b.x); i++) {
    for (register int j = min(a.y, b.y); j <= max(a.y, b.y); j++) {
      G[i][j]++;
      if (G[i][j] == 3) {
        center.x = i;
        center.y = j;
      }
    }
  }
}
int getDis(Point a, Point b) { return abs(b.x - a.x) + abs(b.y - a.y); }
void printPath(Point a, Point b) {
  int nowx = a.x, nowy = a.y;
  int decy = (b.y - a.y > 0) ? 1 : -1;
  for (register int i = nowy; i != b.y; i += decy) {
    printf("%d %d\n", nowx, i);
  }
  nowy = b.y;
  int decx = (b.x - a.x > 0) ? 1 : -1;
  for (register int i = nowx; i != b.x; i += decx) {
    printf("%d %d\n", i, nowy);
  }
}
int main() {
  scanf("%d%d", &P[1].x, &P[1].y);
  scanf("%d%d", &P[2].x, &P[2].y);
  scanf("%d%d", &P[3].x, &P[3].y);
  ModifyReact(P[1], P[2]);
  ModifyReact(P[2], P[3]);
  ModifyReact(P[1], P[3]);
  int ans1 =
      getDis(P[1], center) + getDis(P[2], center) + getDis(P[3], center) + 1;
  printf("%d\n", ans1);
  printf("%d %d\n", center.x, center.y);
  printPath(P[1], center);
  printPath(P[2], center);
  printPath(P[3], center);
  return 0;
}
