#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > out;
vector<pair<int, int> > p(3);
int i, j;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie();
  while (cin >> p[0].first >> p[0].second) {
    for (i = 1; i < 3; i++) cin >> p[i].first >> p[i].second;
    sort(p.begin(), p.end());
    out.clear();
    if (p[0].second > p[1].second && p[1].second < p[2].second) {
      for (i = p[0].first; i <= p[1].first; i++)
        out.push_back(make_pair(i, p[0].second));
      for (i = p[0].second; i >= p[1].second; i--)
        out.push_back(make_pair(p[1].first, i));
      for (i = p[1].second; i <= p[2].second; i++)
        out.push_back(make_pair(p[1].first, i));
      for (i = p[1].first; i <= p[2].first; i++)
        out.push_back(make_pair(i, p[2].second));
    } else if (p[0].second < p[1].second && p[1].second > p[2].second) {
      for (i = p[0].first; i <= p[1].first; i++)
        out.push_back(make_pair(i, p[0].second));
      for (i = p[0].second; i <= p[1].second; i++)
        out.push_back(make_pair(p[1].first, i));
      for (i = p[1].second; i >= p[2].second; i--)
        out.push_back(make_pair(p[1].first, i));
      for (i = p[1].first; i <= p[2].first; i++)
        out.push_back(make_pair(i, p[2].second));
    } else {
      for (i = 0; i < 2; i++) {
        if (p[i].second > p[i + 1].second) {
          for (j = p[i].second; j >= p[i + 1].second; j--)
            out.push_back(make_pair(p[i].first, j));
          for (j = p[i].first; j <= p[i + 1].first; j++)
            out.push_back(make_pair(j, p[i + 1].second));
        } else {
          for (j = p[i].first; j <= p[i + 1].first; j++)
            out.push_back(make_pair(j, p[i].second));
          for (j = p[i].second; j <= p[i + 1].second; j++)
            out.push_back(make_pair(p[i + 1].first, j));
        }
      }
    }
    sort(out.begin(), out.end());
    auto iter = unique(out.begin(), out.end());
    out.erase(iter, out.end());
    cout << out.size() << endl;
    for (pair<int, int> tmp : out) {
      cout << tmp.first << ' ' << tmp.second << endl;
    }
  }
  return 0;
}
