#include <bits/stdc++.h>
using namespace std;
int dist(pair<int, int> s, pair<int, int> t) {
  return abs(s.first - t.first) + abs(s.second - t.second);
}
vector<pair<int, int>> path(pair<int, int> s, pair<int, int> t) {
  vector<pair<int, int>> res;
  if (s.first < t.first) {
    for (int i = s.first; i < t.first; i++) {
      res.push_back({i, s.second});
    }
  } else {
    for (int i = s.first; i > t.first; i--) {
      res.push_back({i, s.second});
    }
  }
  if (s.second < t.second) {
    for (int i = s.second; i < t.second; i++) {
      res.push_back({t.first, i});
    }
  } else {
    for (int i = s.second; i > t.second; i--) {
      res.push_back({t.first, i});
    }
  }
  return res;
}
int main() {
  pair<int, int> A, B, C;
  cin >> A.first >> A.second;
  cin >> B.first >> B.second;
  cin >> C.first >> C.second;
  pair<int, int> poolX[3] = {A, B, C};
  sort(poolX, poolX + 3);
  pair<int, int> poolY[3] = {
      {A.second, A.first}, {B.second, B.first}, {C.second, C.first}};
  sort(poolY, poolY + 3);
  pair<int, int> D = {poolX[1].first, poolY[1].first};
  int AD = dist(A, D);
  int BD = dist(B, D);
  int CD = dist(C, D);
  int sum = AD + BD + CD + 1;
  cout << sum << endl;
  cout << D.first << " " << D.second << endl;
  vector<pair<int, int>> ad = path(A, D);
  for (int i = 0; i < ad.size(); i++) {
    cout << ad[i].first << " " << ad[i].second << endl;
  }
  vector<pair<int, int>> bd = path(B, D);
  for (int i = 0; i < bd.size(); i++) {
    cout << bd[i].first << " " << bd[i].second << endl;
  }
  vector<pair<int, int>> cd = path(C, D);
  for (int i = 0; i < cd.size(); i++) {
    cout << cd[i].first << " " << cd[i].second << endl;
  }
}
