#include <bits/stdc++.h>
using namespace std;
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  pair<int, int> A, B, C;
  cin >> A.first >> A.second >> B.first >> B.second >> C.first >> C.second;
  pair<int, int> left = min(A, min(B, C));
  pair<int, int> right = max(A, max(B, C));
  pair<int, int> middle = A;
  if (middle == left || middle == right) middle = B;
  if (middle == left || middle == right) middle = C;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  ;
  set<pair<int, int> > forest;
  forest.insert(A);
  forest.insert(B);
  forest.insert(C);
  int x = left.first, y = left.second;
  while (x < middle.first) {
    x++;
    forest.insert({x, y});
  }
  while (y != middle.second) {
    if (y < middle.second)
      y++;
    else
      y--;
    forest.insert({x, y});
  }
  x = right.first;
  y = right.second;
  while (x > middle.first) {
    x--;
    forest.insert({x, y});
  }
  while (y != middle.second) {
    if (y < middle.second)
      y++;
    else
      y--;
    forest.insert({x, y});
  }
  set<pair<int, int> > forest2;
  forest2.insert(A);
  forest2.insert(B);
  forest2.insert(C);
  x = right.first, y = right.second;
  while (x > middle.first) {
    x--;
    forest2.insert({x, y});
  }
  while (y != middle.second) {
    if (y < middle.second)
      y++;
    else
      y--;
    forest2.insert({x, y});
  }
  x = left.first;
  y = left.second;
  while (x < middle.first) {
    x++;
    forest2.insert({x, y});
  }
  while (y != middle.second) {
    if (y < middle.second)
      y++;
    else
      y--;
    forest2.insert({x, y});
  }
  if (forest2.size() > forest.size()) {
    cout << forest.size() << endl;
    for (auto &el : forest) cout << el.first << " " << el.second << endl;
  } else {
    cout << forest2.size() << endl;
    for (auto &el : forest2) cout << el.first << " " << el.second << endl;
  }
  return 0;
}
