#include <bits/stdc++.h>
using namespace std;
ifstream in;
ofstream out;
const long long kk = 1000;
const long long ml = kk * kk;
const long long mod = ml * kk + 7;
const long long inf = ml * ml * ml + 7;
long long n, i, j;
vector<long long> m;
vector<pair<long long, long long> > x;
bool viv = false;
map<pair<long long, long long>, bool> was;
pair<long long, string> ans;
string ll_to_str(long long v) {
  string s = "";
  if (v == 0) return "0";
  bool obr = false;
  if (v < 0) obr = true;
  v = abs(v);
  while (v > 0) {
    short e = v % 10;
    s += char('0' + e);
    v /= 10;
  }
  reverse(s.begin(), s.end());
  if (obr) s = '-' + s;
  return s;
}
void write(pair<long long, long long> a) {
  if (was[a]) return;
  was[a] = true;
  ans.first++;
  ans.second += ll_to_str(a.first);
  ans.second += ' ';
  ans.second += ll_to_str(a.second);
  ans.second += '\n';
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  x.assign(3, {0, 0});
  for (long long i = 0; i < 3; i++) cin >> x[i].first >> x[i].second;
  sort(x.begin(), x.end());
  pair<long long, long long> cur = x[0];
  while (cur.first < x[1].first) {
    write(cur);
    cur.first++;
  }
  while (cur.second < x[1].second) {
    write(cur);
    cur.second++;
  }
  while (cur.second > x[1].second) {
    write(cur);
    cur.second--;
  }
  while (cur.second < x[2].second) {
    write(cur);
    cur.second++;
  }
  while (cur.second > x[2].second) {
    write(cur);
    cur.second--;
  }
  while (cur.first < x[2].first) {
    write(cur);
    cur.first++;
  }
  write(cur);
  cout << ans.first << endl;
  cout << ans.second << endl;
  return 0;
}
