#include <bits/stdc++.h>
using namespace std;
pair<int, int> arr[3];
void printpt(pair<int, int> now, pair<int, int> goal) {
  if (now == goal) return;
  if (now.first < goal.first) {
    printf("%d %d\n", now.first + 1, now.second);
    printpt(make_pair(now.first + 1, now.second), goal);
    return;
  }
  if (now.first > goal.first) {
    printf("%d %d\n", now.first - 1, now.second);
    printpt(make_pair(now.first - 1, now.second), goal);
    return;
  }
  if (now.second < goal.second) {
    printf("%d %d\n", now.first, now.second + 1);
    printpt(make_pair(now.first, now.second + 1), goal);
    return;
  }
  if (now.second > goal.second) {
    printf("%d %d\n", now.first, now.second - 1);
    printpt(make_pair(now.first, now.second - 1), goal);
    return;
  }
}
int main() {
  for (int i = 0; i < 3; i++) scanf("%d %d", &arr[i].first, &arr[i].second);
  pair<int, int> pt;
  int dist = 100000000, temp;
  for (int i = 0; i <= 1000; i++) {
    for (int j = 0; j <= 1000; j++) {
      temp = 0;
      for (int k = 0; k < 3; k++)
        temp += abs(arr[k].first - i) + abs(arr[k].second - j);
      if (temp < dist) {
        dist = temp;
        pt = make_pair(i, j);
      }
    }
  }
  printf("%d\n", dist + 1);
  printf("%d %d\n", pt.first, pt.second);
  for (int i = 0; i < 3; i++) printpt(pt, arr[i]);
  return 0;
}
