#include <bits/stdc++.h>
using namespace std;
const double DINF = numeric_limits<double>::infinity();
const long long MOD = 1e9 + 7;
const double EPS = 1e-7;
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
mt19937 mmtw_(MOD + 1);
uniform_int_distribution<long long> rd_;
uniform_int_distribution<int> rdi_;
long long randomll() { return rd_(mmtw_); }
int randto(int x) { return rdi_(mmtw_) % x; }
long long rnd(long long x, long long y) { return rd_(mmtw_) % (y - x + 1) + x; }
vector<pair<int, int> > a;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  set<pair<int, int> > res;
  a.resize(3);
  cin >> a[0].first >> a[0].second >> a[1].first >> a[1].second >> a[2].first >>
      a[2].second;
  sort(a.begin(), a.end());
  while (a[0].first < a[1].first) {
    res.insert({a[0].first, a[0].second});
    a[0].first++;
  }
  while (a[2].first > a[1].first) {
    res.insert({a[2].first, a[2].second});
    a[2].first--;
  }
  int first = min(a[0].second, min(a[1].second, a[2].second));
  int second = max(a[0].second, max(a[1].second, a[2].second));
  while (first <= second) {
    res.insert({a[0].first, first});
    first++;
  }
  cout << res.size() << '\n';
  for (auto &it : res) {
    cout << it.first << ' ' << it.second << '\n';
  }
}
