#include <bits/stdc++.h>
#pragma GCC target("avx2")
#pragma GCC optimization("O3")
#pragma GCC optimization("unroll-loops")
using namespace std;
const int mod = 1e9 + 7;
const int N = 106 * 106;
const int nax = 1e6 + 6;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  pair<int, int> me[3];
  for (int i = 0; i < 3; i++) cin >> me[i].first >> me[i].second;
  sort(me, me + 3);
  int x = me[0].first;
  int y = me[0].second;
  int a = me[1].first;
  int b = me[1].second;
  int c = me[2].first;
  int d = me[2].second;
  int mn = min(y, d);
  int mx = max(y, d);
  set<pair<int, int>> ans;
  ans.insert(make_pair(a, b));
  if (mn < b) {
    for (int i = b; i >= mn; i--) {
      ans.insert(make_pair(a, i));
    }
  }
  if (mx > b) {
    for (int i = b; i <= mx; i++) {
      ans.insert(make_pair(a, i));
    }
  }
  ans.insert(make_pair(x, y));
  for (int i = x; i <= a; i++) {
    ans.insert(make_pair(i, y));
  }
  ans.insert(make_pair(c, d));
  for (int i = c; i >= a; i--) {
    ans.insert(make_pair(i, d));
  }
  cout << ans.size() << '\n';
  for (auto it : ans) cout << it.first << ' ' << it.second << '\n';
  return 0;
}
