#include <bits/stdc++.h>
using namespace std;
const int N = 1e5;
const long long LIM = 1e18;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7;
const double eps = 1e-4;
const double PI = atan(1.0) * 4;
struct Point {
  int x, y;
  bool friend operator<(Point c, Point d) {
    if (c.x != d.x) return c.x < d.x;
    return !(c.y < d.y);
  }
} p[4];
vector<pair<int, int> > ans;
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  ;
  for (int i = 1; i <= 3; i++) cin >> p[i].x >> p[i].y;
  sort(p + 1, p + 4);
  if (p[1].y <= p[3].y) {
    if (p[2].y >= p[1].y && p[3].y >= p[2].y) {
      for (int i = p[1].x; i <= p[2].x; i++)
        ans.push_back(make_pair(i, p[1].y));
      for (int i = p[2].x; i <= p[3].x; i++)
        ans.push_back(make_pair(i, p[3].y));
      for (int i = p[1].y + 1; i < p[3].y; i++)
        ans.push_back(make_pair(p[2].x, i));
    } else if (p[2].y < p[1].y) {
      for (int i = p[1].x; i <= p[3].x; i++)
        ans.push_back(make_pair(i, p[1].y));
      for (int i = p[1].y + 1; i <= p[3].y; i++)
        ans.push_back(make_pair(p[3].x, i));
      for (int i = p[2].y; i < p[1].y; i++) ans.push_back(make_pair(p[2].x, i));
    } else {
      for (int i = p[1].y; i <= p[3].y; i++)
        ans.push_back(make_pair(p[1].x, i));
      for (int i = p[1].x + 1; i <= p[3].x; i++)
        ans.push_back(make_pair(i, p[3].y));
      for (int i = p[2].y; i > p[3].y; i--) ans.push_back(make_pair(p[2].x, i));
    }
  } else {
    if (p[2].y <= p[1].y && p[3].y <= p[2].y) {
      for (int i = p[1].x; i <= p[2].x; i++)
        ans.push_back(make_pair(i, p[1].y));
      for (int i = p[2].x; i <= p[3].x; i++)
        ans.push_back(make_pair(i, p[3].y));
      for (int i = p[1].y - 1; i > p[3].y; i--)
        ans.push_back(make_pair(p[2].x, i));
    } else if (p[2].y > p[1].y) {
      for (int i = p[1].x; i <= p[3].x; i++)
        ans.push_back(make_pair(i, p[1].y));
      for (int i = p[1].y - 1; i >= p[3].y; i--)
        ans.push_back(make_pair(p[3].x, i));
      for (int i = p[2].y; i > p[1].y; i--) ans.push_back(make_pair(p[2].x, i));
    } else {
      for (int i = p[1].y; i >= p[3].y; i--)
        ans.push_back(make_pair(p[1].x, i));
      for (int i = p[1].x + 1; i <= p[3].x; i++)
        ans.push_back(make_pair(i, p[3].y));
      for (int i = p[2].y; i < p[3].y; i++) ans.push_back(make_pair(p[2].x, i));
    }
  }
  int sz = unique(ans.begin(), ans.end()) - ans.begin();
  cout << sz << "\n";
  for (int i = 0; i < sz; i++)
    cout << ans[i].first << " " << ans[i].second << "\n";
  return 0;
}
