#include <bits/stdc++.h>
using namespace std;
struct node {
  int x, y, index;
} e[10];
pair<int, int> ans[int(1e6) + 7];
int cnt;
bool cmp(node a, node b) { return a.x < b.x; }
bool cmp1(node a, node b) { return a.y < b.y; }
int main() {
  for (int i = 1; i < 4; i++) {
    scanf("%d%d", &e[i].x, &e[i].y);
    e[i].index = i;
  }
  sort(e + 1, e + 4, cmp);
  int up = e[3].x, down = e[1].x, mid = e[2].x;
  sort(e + 1, e + 4, cmp1);
  for (int i = e[1].y; i <= e[3].y; i++) {
    ans[++cnt] = make_pair(mid, i);
  }
  for (int i = 1; i <= 3; i++) {
    if (e[i].x != mid) {
      for (int j = min(mid, e[i].x), upper = max(mid, e[i].x); j <= upper;
           j++) {
        ans[++cnt] = make_pair(j, e[i].y);
      }
    }
  }
  sort(ans + 1, ans + cnt + 1);
  cnt = int(unique(ans + 1, ans + 1 + cnt) - ans - 1);
  printf("%d\n", cnt);
  for (int i = 1; i <= cnt; i++) {
    printf("%d %d\n", ans[i].first, ans[i].second);
  }
  return 0;
}
