#include <bits/stdc++.h>
const long long mod = 1000000007ll;
using namespace std;
long long dist(pair<long long, long long> a, pair<long long, long long> b) {
  return abs(a.first - b.first) + abs(a.second - b.second);
}
void print(pair<long long, long long> a) {
  cout << a.first << " " << a.second << "\n";
}
int main() {
  cin.sync_with_stdio(0);
  vector<pair<long long, long long> > surs;
  for (long long i = 0; i < (3); i++) {
    long long x, y;
    cin >> x >> y;
    surs.push_back({x, y});
  }
  pair<long long, long long> best;
  long long bestDist = 2000000009999999999ll;
  for (long long x = (0); x <= (1000); x++) {
    for (long long y = (0); y <= (1000); y++) {
      long long sum = 1;
      for (long long i = 0; i < (3); i++) {
        sum += dist(surs[i], {x, y});
      }
      if (sum < bestDist) {
        best = {x, y};
        bestDist = sum;
      }
    }
  }
  cout << bestDist << "\n";
  print(best);
  for (long long i = 0; i < (3); i++) {
    long long l = best.first, r = surs[i].first;
    bool swapped = false;
    if (l > r) {
      swap(l, r);
      swapped = true;
    }
    for (long long x = (l); x <= (r); x++) {
      if (x == l && !swapped) continue;
      if (x == r && swapped) continue;
      print({x, best.second});
    }
    l = best.second, r = surs[i].second;
    swapped = false;
    if (l > r) {
      swap(l, r);
      swapped = true;
    }
    for (long long y = (l); y <= (r); y++) {
      if (y == l && !swapped) continue;
      if (y == r && swapped) continue;
      print({surs[i].first, y});
    }
  }
  return 0;
}
