#include <bits/stdc++.h>
using namespace std;
struct par {
  int x;
  int y;
};
bool cmp(par a, par b) {
  if (a.x == b.x) {
    return a.y < b.y;
  } else {
    return a.x < b.x;
  }
}
par pars[3];
int main() {
  long long int x, y;
  cin >> x >> y;
  pars[0].x = x;
  pars[0].y = y;
  cin >> x >> y;
  pars[1].x = x;
  pars[1].y = y;
  cin >> x >> y;
  pars[2].x = x;
  pars[2].y = y;
  sort(pars, pars + 3, cmp);
  long long int ans = 0;
  vector<pair<long long int, long long int> > ans1;
  x = pars[0].x;
  y = pars[0].y;
  while (pars[1].x > x) {
    ans1.push_back({x, y});
    x++;
  }
  if (pars[1].y >= pars[0].y) {
    while (pars[1].y > y) {
      ans1.push_back({x, y});
      y++;
    }
  } else {
    while (pars[1].y < y) {
      ans1.push_back({x, y});
      y--;
    }
  }
  ans1.push_back({pars[1].x, pars[1].y});
  x = pars[2].x;
  y = pars[2].y;
  while (x > pars[1].x) {
    ans1.push_back({x, y});
    x--;
  }
  if (pars[2].y >= pars[1].y) {
    while (max(pars[0].y, pars[1].y) < y) {
      ans1.push_back({x, y});
      y--;
    }
  } else {
    while (min(pars[0].y, pars[1].y) > y) {
      ans1.push_back({x, y});
      y++;
    }
  }
  cout << ans1.size() << endl;
  for (int d = 0; d < ans1.size(); d++) {
    cout << ans1[d].first << " " << ans1[d].second << endl;
  }
}
