#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
vector<int> primes;
int go(pair<int, int> &b, pair<int, int> &a) {
  int tmp = abs(a.second - b.second);
  int tmp1 = abs(a.first - b.first);
  return tmp + tmp1 + 1;
}
void p(int a, int b, int c) {
  for (int i = a; i <= b; ++i) cout << i << " " << c << endl;
}
void p1(int a, int b, int c) {
  for (int i = a; i <= b; ++i) cout << c << " " << i << endl;
}
void pr(int a, int b, int c) {
  for (int i = a; i <= b; ++i) cout << i << " " << c << endl;
}
void p1r(int a, int b, int c) {
  for (int i = a; i >= b; --i) cout << c << " " << i << endl;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(nullptr);
  int n;
  vector<pair<int, int> > a(3);
  for (auto &i : a) cin >> i.first >> i.second;
  sort(a.begin(), a.end());
  if (a[0].second <= a[1].second && a[1].second <= a[2].second) {
    cout << go(a[0], a[1]) + go(a[1], a[2]) - 1 << endl;
    p(a[0].first, a[1].first, a[0].second);
    p1(a[0].second + 1, a[1].second, a[1].first);
    p(a[1].first + 1, a[2].first, a[1].second);
    p1(a[1].second + 1, a[2].second, a[2].first);
    return 0;
  }
  if (a[0].second >= a[1].second && a[1].second >= a[2].second) {
    cout << go(a[0], a[1]) + go(a[1], a[2]) - 1 << endl;
    pr(a[0].first, a[1].first, a[0].second);
    p1r(a[0].second - 1, a[1].second, a[1].first);
    pr(a[1].first + 1, a[2].first, a[1].second);
    p1r(a[1].second - 1, a[2].second, a[2].first);
    return 0;
  }
  if (abs(a[1].second - a[0].second) < abs(a[1].second - a[2].second)) {
    pair<int, int> tmp;
    tmp.first = a[1].first;
    tmp.second = a[0].second;
    cout << go(a[0], a[1]) + go(tmp, a[2]) - 1 << endl;
    if (a[0].second < a[1].second) {
      p(a[0].first, a[1].first, a[0].second);
      p1(a[0].second + 1, a[1].second, a[1].first);
      pr(tmp.first + 1, a[2].first, tmp.second);
      p1r(tmp.second - 1, a[2].second, a[2].first);
    } else {
      p(a[0].first, a[1].first, a[0].second);
      p1r(a[0].second - 1, a[1].second, a[1].first);
      p(tmp.first + 1, a[2].first, tmp.second);
      p1(tmp.second + 1, a[2].second, a[2].first);
    }
    return 0;
  }
  pair<int, int> tmp;
  tmp.first = a[1].first;
  tmp.second = a[2].second;
  cout << go(a[1], a[2]) + go(a[0], tmp) - 1 << endl;
  if (a[2].second < a[1].second) {
    p(a[0].first, a[1].first, a[0].second);
    p1(a[0].second + 1, a[1].second, a[1].first);
    pr(tmp.first + 1, a[2].first, tmp.second);
    p1r(tmp.second - 1, a[2].second, a[2].first);
  } else {
    p(a[0].first, a[1].first, a[0].second);
    p1r(a[0].second - 1, a[1].second, a[1].first);
    p(tmp.first + 1, a[2].first, tmp.second);
    p1(tmp.second + 1, a[2].second, a[2].first);
  }
  return 0;
}
