#include <bits/stdc++.h>
using namespace std;
pair<int, int> pt[3];
set<pair<int, int>> sr;
void crt(int x1, int y1, int x2, int y2) {
  while (x1 < x2) {
    x1++;
    sr.emplace(x1, y1);
  }
  while (x1 > x2) {
    x1--;
    sr.emplace(x1, y1);
  }
  while (y1 < y2) {
    y1++;
    sr.emplace(x1, y1);
  }
  while (y1 > y2) {
    y1--;
    sr.emplace(x1, y1);
  }
}
int main() {
  cin >> pt[0].first >> pt[0].second >> pt[1].first >> pt[1].second >>
      pt[2].first >> pt[2].second;
  sort(pt, pt + 3);
  sr.emplace(pt[0].first, pt[0].second);
  sr.emplace(pt[1].first, pt[1].second);
  sr.emplace(pt[2].first, pt[2].second);
  int miny, maxy;
  tie(miny, maxy) = minmax(pt[0].second, pt[2].second);
  if (pt[1].second >= miny and pt[1].second <= maxy) {
    crt(pt[0].first, pt[0].second, pt[1].first, pt[1].second);
    crt(pt[1].first, pt[1].second, pt[2].first, pt[2].second);
  } else if (pt[1].second > maxy) {
    int x1, y1, x2, y2, x3, y3;
    tie(x1, y1) = pt[0];
    tie(x2, y2) = pt[1];
    tie(x3, y3) = pt[2];
    while (y2 > maxy) sr.emplace(x2, --y2);
    while (y1 < y3) sr.emplace(x1, ++y1);
    while (x1 < x3) sr.emplace(++x1, y1);
    while (y1 > y3) sr.emplace(x1, --y1);
  } else if (pt[1].second < miny) {
    int x1, y1, x2, y2, x3, y3;
    tie(x1, y1) = pt[0];
    tie(x2, y2) = pt[1];
    tie(x3, y3) = pt[2];
    while (y2 < miny) sr.emplace(x2, ++y2);
    while (y1 > y3) sr.emplace(x1, --y1);
    while (x1 < x3) sr.emplace(++x1, y1);
    while (y1 < y3) sr.emplace(x1, ++y1);
  }
  cout << sr.size() << endl;
  for (auto p : sr) {
    cout << p.first << ' ' << p.second << endl;
  }
  return 0;
}
