#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
const int MX = (1 << 17);
pair<int, int> P[4];
int ans = (1 << 30);
vector<pair<int, int> > shit;
int dis(pair<int, int> a, pair<int, int> b) {
  return abs(a.first - b.first) + abs(a.second - b.second);
}
set<pair<int, int> > S;
void clr(pair<int, int> a, pair<int, int> b) {
  int x1 = a.first, x2 = b.first;
  int y1 = a.second, y2 = b.second;
  int addy = 1, addx = 1;
  if (y2 < y1) addy *= -1;
  for (int j = y1;; j += addy) {
    S.insert({x1, j});
    if (j == y2) break;
  }
  if (x2 < x1) addx *= -1;
  for (int j = x1;; j += addx) {
    S.insert({j, y2});
    if (j == x2) break;
  }
}
int main() {
  vector<pair<int, int> > v;
  for (int j = 0; j < 3; j++) {
    int x, y;
    cin >> x >> y;
    v.push_back({x, y});
  }
  sort(v.begin(), v.end());
  do {
    int cur = dis(v[0], v[1]) + dis(v[1], v[2]) + 1;
    if (cur < ans) {
      ans = cur;
      shit.clear();
      for (auto pp : v) shit.push_back(pp);
    }
  } while (next_permutation(v.begin(), v.end()));
  for (int x = 0; x <= 1000; x++) {
    for (int y = 0; y <= 1000; y++) {
      pair<int, int> p = {x, y};
      int cur = dis(p, v[0]) + dis(p, v[1]) + dis(p, v[2]) + 1;
      if (cur < ans) {
        ans = cur;
        shit.clear();
        shit.push_back(p);
      }
    }
  }
  if (shit.size() == 1) {
    clr(shit[0], v[0]);
    clr(shit[0], v[1]);
    clr(shit[0], v[2]);
  } else {
    clr(shit[0], shit[1]);
    clr(shit[1], shit[2]);
  }
  cout << S.size() << endl;
  for (auto pp : S) printf("%d %d\n", pp.first, pp.second);
}
