#include <bits/stdc++.h>
using namespace std;
using LL = long long;
using Point = pair<int, int>;
bool pres[1001][1001];
vector<Point> pts;
void add(int x, int y) {
  if (pres[x][y]) return;
  pres[x][y] = true;
  pts.emplace_back(x, y);
}
void path(Point a, Point b) {
  if (a.first > b.first) swap(a, b);
  while (a.first < b.first) {
    add(a.first, a.second);
    a.first++;
  }
  if (a.second > b.second) swap(a, b);
  while (a.second < b.second) {
    add(a.first, a.second);
    a.second++;
  }
  add(b.first, b.second);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  Point a, b, c;
  cin >> a.first >> a.second;
  cin >> b.first >> b.second;
  cin >> c.first >> c.second;
  Point p(0, 0);
  int curr = a.first + a.second + b.first + b.second + c.first + c.second;
  for (int x = 0; x <= 1000; x++) {
    for (int y = 0; y <= 1000; y++) {
      int dis = abs(a.first - x) + abs(a.second - y) + abs(b.first - x) +
                abs(b.second - y) + abs(c.first - x) + abs(c.second - y);
      if (dis < curr) {
        curr = dis;
        p = {x, y};
      }
    }
  };
  path(p, a);
  path(p, b);
  path(p, c);
  cout << pts.size() << endl;
  for (auto& q : pts) {
    cout << q.first << ' ' << q.second << '\n';
  }
  return 0;
}
