#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 3;
const int inf = 1e9 + 3;
const int md = 1e9 + 7;
int n, m, ans, l, r;
int xa, xb, xc, ya, yb, yc, mxx, mxy;
int dist(int x1, int y123123, int x2, int y2) {
  return abs(x1 - x2) + abs(y123123 - y2);
}
int d[1001][1001], pr[1001][1001];
pair<int, int> q[N * 10];
int _x[4], _y[4];
bool norm(int x, int y) { return x >= 0 && y >= 0 && x <= 1000 && y <= 1000; }
bool used[1001][1001];
vector<pair<int, int> > anss;
void gett(int x, int y) {
  while (pr[x][y] != -1) {
    used[x][y] = true;
    int z = pr[x][y];
    x -= _x[z];
    y -= _y[z];
  }
  used[x][y] = true;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  _x[0] = _y[1] = 1;
  _x[2] = _y[3] = -1;
  cin >> xa >> ya;
  cin >> xb >> yb;
  cin >> xc >> yc;
  ans = inf;
  for (int i = 0; i <= 1000; ++i) {
    for (int j = 0; j <= 1000; ++j) {
      int res =
          dist(i, j, xa, ya) + dist(i, j, xb, yb) + dist(i, j, xc, yc) + 1;
      ans = min(ans, res);
      if (ans == res) {
        mxx = i;
        mxy = j;
      }
    }
  }
  for (int i = 0; i <= 1000; ++i) {
    for (int j = 0; j <= 1000; ++j) {
      d[i][j] = inf;
    }
  }
  l = r = 1;
  pr[mxx][mxy] = -1;
  d[mxx][mxy] = 0;
  q[1] = make_pair(mxx, mxy);
  while (l <= r) {
    mxx = q[l].first;
    mxy = q[l].second;
    l++;
    for (int i = 0; i < 4; ++i) {
      int x1 = mxx + _x[i];
      int y123123 = mxy + _y[i];
      if (norm(x1, y123123) && d[x1][y123123] > d[mxx][mxy] + 1) {
        d[x1][y123123] = d[mxx][mxy] + 1;
        pr[x1][y123123] = i;
        q[++r] = make_pair(x1, y123123);
      }
    }
  }
  gett(xa, ya);
  gett(xb, yb);
  gett(xc, yc);
  for (int i = 0; i <= 1000; ++i) {
    for (int j = 0; j <= 1000; ++j) {
      if (used[i][j]) {
        anss.push_back(make_pair(i, j));
      }
    }
  }
  cout << anss.size() << '\n';
  for (int i = 0; i < anss.size(); ++i) {
    cout << anss[i].first << " " << anss[i].second << '\n';
  }
}
