#include <bits/stdc++.h>
using namespace std;
set<pair<int, int> > sss;
vector<pair<int, int> > ans;
int dist(pair<int, int> f, pair<int, int> &s) {
  return abs(f.first - s.first) + abs(f.second - s.second);
}
void pb(pair<int, int> cur) {
  if (sss.find(cur) == sss.end()) {
    ans.push_back(cur);
    sss.insert(cur);
  }
}
void go(pair<int, int> f, pair<int, int> s) {
  if (f.first > s.first) {
    swap(f, s);
  }
  for (int x = f.first; x < s.first; ++x) {
    pb(make_pair(x, f.second));
  }
  for (int y = min(f.second, s.second); y <= max(f.second, s.second); ++y) {
    pb(make_pair(s.first, y));
  }
}
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n = 3;
  vector<pair<int, int> > v(n);
  for (int i = 0; i < n; ++i) {
    cin >> v[i].first >> v[i].second;
  }
  sort(v.begin(), v.end());
  pair<int, int> best = v[0];
  for (int x = min(v[0].first, v[1].first); x <= max(v[0].first, v[1].first);
       ++x) {
    for (int y = min(v[0].second, v[1].second);
         y <= max(v[0].second, v[1].second); ++y) {
      if (dist(make_pair(x, y), v[2]) < dist(best, v[2])) {
        best = make_pair(x, y);
      }
    }
  }
  go(v[0], best);
  go(best, v[1]);
  go(best, v[2]);
  cout << ans.size() << endl;
  for (auto it : ans) {
    cout << it.first << ' ' << it.second << endl;
  }
}
