#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
long long gcd(long long x, long long y) {
  while (y) x %= y, swap(x, y);
  return x;
}
pair<long long, long long> operator+(pair<long long, long long> a,
                                     pair<long long, long long> b) {
  return pair<long long, long long>(a.first + b.first, a.second + b.second);
}
pair<long long, long long> operator-(pair<long long, long long> a,
                                     pair<long long, long long> b) {
  return pair<long long, long long>(a.first - b.first, a.second - b.second);
}
long long operator*(pair<long long, long long> a,
                    pair<long long, long long> b) {
  return a.first * b.second - a.second * b.first;
}
template <class T>
int sign(T x) {
  return x < 0 ? -1 : x > 0 ? 1 : 0;
}
int ccw(pair<long long, long long> a, pair<long long, long long> b,
        pair<long long, long long> c) {
  return sign((b - a) * (c - b));
}
template <class T>
void setmin(T &x, T y) {
  if (x > y) x = y;
}
template <class T>
void setmax(T &x, T y) {
  if (x < y) x = y;
}
template <class T>
void addval(T &x, T y) {
  x += y;
  x %= mod;
}
size_t getCurrentTime() {
  return chrono::steady_clock::now().time_since_epoch().count();
}
struct __RandomLong__ {
  mt19937_64 rnd;
  __RandomLong__() : rnd(getCurrentTime()) {}
  long long operator()(long long Min, long long Max) {
    return uniform_int_distribution<long long>(Min, Max)(rnd);
  }
  long long operator()() { return (*this)(LONG_LONG_MIN, LONG_LONG_MAX); }
} randomLong;
struct my_hash {
  static uint64_t splitmix(uint64_t x) {
    x += 0x9e3779b97f4a7c15ull;
    x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9ull;
    x = (x ^ (x >> 27)) * 0x94d049bb133111ebull;
    return x ^ (x >> 31);
  }
  size_t operator()(long long x) const {
    static long long T = getCurrentTime();
    return splitmix(x + T);
  }
};
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int x[3], y[3];
  for (int i = 0; i < 3; i++) {
    cin >> x[i] >> y[i];
  }
  pair<int, int> ansp;
  int ansv = 1e8;
  for (int i = 0; i <= 1000; i++) {
    for (int j = 0; j <= 1000; j++) {
      int v = 0;
      for (int k = 0; k < 3; k++) v += abs(x[k] - i) + abs(y[k] - j);
      if (v < ansv) {
        ansv = v;
        ansp = pair<int, int>(i, j);
      }
    }
  }
  cout << ansv + 1 << '\n';
  int px, py;
  tie(px, py) = ansp;
  for (int it = 0; it < 3; it++) {
    int i = x[it], j = y[it];
    while (i != px || j != py) {
      cout << i << ' ' << j << '\n';
      if (i != px) {
        i += (px - i) / abs(px - i);
      } else {
        j += (py - j) / abs(py - j);
      }
    }
  }
  cout << px << ' ' << py << '\n';
}
