#include <bits/stdc++.h>
using namespace std;
struct plot {
  int x, y;
};
bool cmp(plot a, plot b) { return a.x < b.x; }
int main() {
  vector<plot> p(3);
  for (int i = 0; i < 3; i++) cin >> p[i].x >> p[i].y;
  sort(p.begin(), p.end(), cmp);
  plot m;
  m.x = p[0].x;
  m.y = p[0].y;
  vector<plot> res;
  while (m.x != p[1].x) {
    res.push_back(m);
    m.x++;
  }
  res.push_back(m);
  while (m.y != p[1].y) {
    if (m.y > p[1].y)
      m.y--;
    else
      m.y++;
    res.push_back(m);
  }
  if (m.y >= p[2].y) m.y = p[2].y;
  int ymax = max(p[0].y, p[1].y);
  int ymin = min(p[0].y, p[1].y);
  if (p[2].y > ymax)
    m.y = ymax;
  else if (p[2].y < ymin)
    m.y = ymin;
  else
    m.y = p[2].y;
  while (m.x != p[2].x) {
    m.x++;
    res.push_back(m);
  }
  while (m.y != p[2].y) {
    if (m.y > p[2].y)
      m.y--;
    else
      m.y++;
    res.push_back(m);
  }
  cout << res.size() << endl;
  for (int i = 0; i < res.size(); i++)
    cout << res[i].x << " " << res[i].y << endl;
}
