#include <bits/stdc++.h>
using namespace std;
long long int max(long long int a, long long int b) {
  if (a > b)
    return a;
  else
    return b;
}
long long int min(long long int a, long long int b) {
  if (a < b)
    return a;
  else
    return b;
}
const int dx[4] = {-1, 1, 0, 0};
const int dy[4] = {0, 0, -1, 1};
int XX[] = {-1, -1, -1, 0, 0, 1, 1, 1};
int YY[] = {-1, 0, 1, -1, 1, -1, 0, 1};
bool compare(pair<long long int, long long int>& a,
             pair<long long int, long long int>& b) {
  if (a.first != b.first) return a.first < b.first;
  return a.second < b.second;
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
  long long int t, i, j, g, L, x, n, y, h, w;
  vector<pair<long long int, long long int> > vec;
  for (i = 0; i < 3; i++) {
    cin >> x >> y;
    vec.push_back(make_pair(x, y));
  }
  sort(vec.begin(), vec.end(), compare);
  set<pair<long long int, long long int> > s;
  long long int xa = vec[0].first, ya = vec[0].second, xb = vec[1].first,
                yb = vec[1].second, xc = vec[2].first, yc = vec[2].second;
  while (xa < xb) {
    s.insert(make_pair(xa, ya));
    xa++;
  }
  s.insert(make_pair(xa, ya));
  if (yb >= ya) {
    while (yb > ya) {
      s.insert(make_pair(xa, ya));
      ya++;
    }
    s.insert(make_pair(xa, ya));
  } else {
    while (ya > yb) {
      s.insert(make_pair(xa, ya));
      ya--;
    }
    s.insert(make_pair(xa, ya));
  }
  if (yc >= ya) {
    while (yc > ya) {
      s.insert(make_pair(xa, ya));
      ya++;
    }
    s.insert(make_pair(xa, ya));
  } else {
    while (ya > yc) {
      s.insert(make_pair(xa, ya));
      ya--;
    }
    s.insert(make_pair(xa, ya));
  }
  while (xa <= xc) {
    s.insert(make_pair(xa, ya));
    xa++;
  }
  cout << s.size() << "\n";
  for (auto itr : s) {
    cout << itr.first << " " << itr.second << "\n";
  }
}
