#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
const long long INF = 1e9;
const long long LINF = INF * INF;
const int MAX = 1 << 10;
void go(pair<int, int> s, pair<int, int> f, vector<pair<int, int> >& a) {
  a.push_back(s);
  while (s.first > f.first) {
    s.first--;
    a.push_back(s);
  }
  while (s.first < f.first) {
    s.first++;
    a.push_back(s);
  }
  while (s.second > f.second) {
    s.second--;
    a.push_back(s);
  }
  while (s.second < f.second) {
    s.second++;
    a.push_back(s);
  }
  a.push_back(f);
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  vector<pair<int, int> > a(3);
  for (int i = (0); i < (3); ++i) cin >> a[i].first >> a[i].second;
  vector<pair<int, int> > ans1, ans2;
  sort(a.begin(), a.end());
  go(a[0], a[1], ans1);
  go(a[1], a[2], ans1);
  go(a[0], {a[1].first, a[2].second}, ans2);
  go(a[1], {a[1].first, a[2].second}, ans2);
  go(a[2], {a[1].first, a[2].second}, ans2);
  sort(ans1.begin(), ans1.end());
  ans1.resize(unique(ans1.begin(), ans1.end()) - ans1.begin());
  sort(ans2.begin(), ans2.end());
  ans2.resize(unique(ans2.begin(), ans2.end()) - ans2.begin());
  vector<pair<int, int> > ans = ans1;
  if ((int)((ans2).size()) < (int)((ans1).size())) ans = ans2;
  sort(ans.begin(), ans.end());
  ans.resize(unique(ans.begin(), ans.end()) - ans.begin());
  cout << (int)((ans).size()) << endl;
  for (auto i : ans) cout << i.first << ' ' << i.second << endl;
  cerr << "Time elapsed: " << clock() / (double)CLOCKS_PER_SEC << endl;
  return 0;
}
